Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


sbapp/main.py 0.7.1 (c8386b85) Text, 224.07 KB

Te6edf3__debug_build__ Tff7b72= Tff7b72False
Te6edf3__disable_shaders__ Tff7b72= Tff7b72False
Te6edf3__version__ Tff7b72= Ta5d6ff"Ta5d6ff0.7.1Ta5d6ff"
Te6edf3__variant__ Tff7b72= Ta5d6ff"Ta5d6ffbetaTa5d6ff"

Tff7b72import T7ee787sys
Tff7b72import T7ee787argparse
Te6edf3parser Tff7b72= Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4(Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ffSideband LXMF ClientTa5d6ff"Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff-vTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--verboseTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff'Ta5d6ffstore_trueTa5d6ff'Tb4b4b4, Te6edf3defaultTff7b72=Tff7b72FalseTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffincrease logging verbosityTa5d6ff"Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff-dTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--daemonTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff'Ta5d6ffstore_trueTa5d6ff'Tb4b4b4, Te6edf3defaultTff7b72=Tff7b72FalseTb4b4b4, Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffrun as a daemon, without user interfaceTa5d6ff"Tb4b4b4)
Te6edf3parserTff7b72.Td2a8ffadd_argumentTb4b4b4(Ta5d6ff"Ta5d6ff--versionTa5d6ff"Tb4b4b4, Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4, Te6edf3versionTff7b72=Ta5d6ff"Ta5d6ffsideband Tffd700{version}Ta5d6ff"Tff7b72.Td2a8ffformatTb4b4b4(Te6edf3versionTff7b72=Te6edf3__version__Tb4b4b4)Tb4b4b4)
Te6edf3args Tff7b72= Te6edf3parserTff7b72.Td2a8ffparse_argsTb4b4b4(Tb4b4b4)
Te6edf3sysTff7b72.Td2a8ffargv Tff7b72= Tb4b4b4[Te6edf3sysTff7b72.Td2a8ffargvTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4]

Tff7b72import T7ee787RNS
Tff7b72import T7ee787LXMF
Tff7b72import T7ee787time
Tff7b72import T7ee787os
Tff7b72import T7ee787pathlib
Tff7b72import T7ee787base64
Tff7b72import T7ee787threading
Tff7b72import T7ee787RNST7ee787.T7ee787vendorT7ee787.T7ee787umsgpack Tff7b72as T7ee787msgpack

Tff7b72if Tff7b72not Te6edf3argsTff7b72.Td2a8ffdaemonTb4b4b4:
Tff7b72import T7ee787plyer
Tff7b72from T7ee787kivyT7ee787.T7ee787logger Tff7b72import Te6edf3LoggerTb4b4b4, Te6edf3LOG_LEVELS

T8b949e# Squelch excessive method signature logging
Tff7b72class T56d364redirect_logTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffisEnabledForTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72False
Tff7b72def Td2a8ffdebugTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8fftraceTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ffwarningTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffKivy error: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3argTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_WARNINGTb4b4b4)
Tff7b72def Td2a8ffcriticalTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffKivy error: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3argTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72import T7ee787jniusT7ee787.T7ee787reflect
Tff7b72def Td2a8ffmodTb4b4b4(Te6edf3methodTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3signatureTb4b4b4)Tb4b4b4:
Tff7b72pass
Te6edf3jniusTff7b72.Td2a8ffreflectTff7b72.Td2a8fflog_method Tff7b72= Te6edf3mod
Te6edf3jniusTff7b72.Td2a8ffreflectTff7b72.Td2a8fflog Tff7b72= Te6edf3redirect_logTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3__debug_build__ Tff7b72or Te6edf3argsTff7b72.Td2a8ffverboseTb4b4b4:
Te6edf3LoggerTff7b72.Td2a8ffsetLevelTb4b4b4(Te6edf3LOG_LEVELSTb4b4b4[Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3LoggerTff7b72.Td2a8ffsetLevelTb4b4b4(Te6edf3LOG_LEVELSTb4b4b4[Ta5d6ff"Ta5d6fferrorTa5d6ff"Tb4b4b4]Tb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72!= Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3local Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffdirnameTb4b4b4(Tff7b72__file__Tb4b4b4)
Te6edf3sysTff7b72.Td2a8ffpathTff7b72.Td2a8ffappendTb4b4b4(Te6edf3localTb4b4b4)

Tff7b72if Te6edf3argsTff7b72.Td2a8ffdaemonTb4b4b4:
Tff7b72from T7ee787.T7ee787sidebandT7ee787.T7ee787core Tff7b72import Te6edf3SidebandCore
Tff7b72class T56d364DaemonElementTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72class T56d364DaemonAppTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72pass

Te6edf3MDApp Tff7b72= Te6edf3DaemonAppTb4b4b4; Te6edf3OneLineIconListItem Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Window Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Clipboard Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3EventLoop Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Clock Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Builder Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3ScrollEffect Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3SlideTransition Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3ScreenManager Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3FadeTransition Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3NoTransition Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3OneLineIconListItem Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3StringProperty Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3BaseButton Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3MDIconButton Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3MDFileManager Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3toast Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3dp Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3sp Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3MDRectangleFlatButton Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3MDDialog Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3colors Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Telemeter Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3CustomMapMarker Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3MBTilesMapSource Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3MapSource Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3webbrowser Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Conversations Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3MsgSync Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3NewConv Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Telemetry Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3ObjectDetails Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3Announces Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3Messages Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3ts_format Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3messages_screen_kv Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3plyer Tff7b72= Te6edf3DaemonElementTb4b4b4;
Te6edf3ContentNavigationDrawer Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3DrawerList Tff7b72= Te6edf3DaemonElementTb4b4b4; Te6edf3IconListItem Tff7b72= Te6edf3DaemonElementTb4b4b4;

Tff7b72elseTb4b4b4:
Tff7b72from T7ee787kivymdT7ee787.T7ee787app Tff7b72import Te6edf3MDApp
Te6edf3app_superclass Tff7b72= Te6edf3MDApp
Tff7b72from T7ee787kivyT7ee787.T7ee787coreT7ee787.T7ee787window Tff7b72import Te6edf3Window
Tff7b72from T7ee787kivyT7ee787.T7ee787coreT7ee787.T7ee787clipboard Tff7b72import Te6edf3Clipboard
Tff7b72from T7ee787kivyT7ee787.T7ee787base Tff7b72import Te6edf3EventLoop
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787langT7ee787.T7ee787builder Tff7b72import Te6edf3Builder
Tff7b72from T7ee787kivyT7ee787.T7ee787effectsT7ee787.T7ee787scroll Tff7b72import Te6edf3ScrollEffect
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787screenmanager Tff7b72import Te6edf3ScreenManager
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787screenmanager Tff7b72import Te6edf3FadeTransitionTb4b4b4, Te6edf3NoTransitionTb4b4b4, Te6edf3SlideTransition
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787list Tff7b72import Te6edf3OneLineIconListItem
Tff7b72from T7ee787kivyT7ee787.T7ee787properties Tff7b72import Te6edf3StringProperty
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787button Tff7b72import Te6edf3BaseButtonTb4b4b4, Te6edf3MDIconButton
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787filemanager Tff7b72import Te6edf3MDFileManager
Tff7b72from T7ee787kivymdT7ee787.T7ee787toast Tff7b72import Te6edf3toast
Tff7b72from T7ee787kivyT7ee787.T7ee787metrics Tff7b72import Te6edf3dpTb4b4b4, Te6edf3sp
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787button Tff7b72import Te6edf3MDRectangleFlatButton
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787dialog Tff7b72import Te6edf3MDDialog
Tff7b72from T7ee787kivymdT7ee787.T7ee787color_definitions Tff7b72import Te6edf3colors
Tff7b72from T7ee787sidebandT7ee787.T7ee787sense Tff7b72import Te6edf3Telemeter
Tff7b72from T7ee787mapview Tff7b72import Te6edf3CustomMapMarker
Tff7b72from T7ee787mapviewT7ee787.T7ee787mbtsource Tff7b72import Te6edf3MBTilesMapSource
Tff7b72from T7ee787mapviewT7ee787.T7ee787source Tff7b72import Te6edf3MapSource
Tff7b72import T7ee787webbrowser
Tff7b72import T7ee787kivyT7ee787.T7ee787coreT7ee787.T7ee787image
Te6edf3kivyTff7b72.Td2a8ffcoreTff7b72.Td2a8ffimageTff7b72.Td2a8ffLogger Tff7b72= Te6edf3redirect_logTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72from T7ee787sidebandT7ee787.T7ee787core Tff7b72import Te6edf3SidebandCore

Tff7b72from T7ee787uiT7ee787.T7ee787layouts Tff7b72import Tff7b72*
Tff7b72from T7ee787uiT7ee787.T7ee787conversations Tff7b72import Te6edf3ConversationsTb4b4b4, Te6edf3MsgSyncTb4b4b4, Te6edf3NewConv
Tff7b72from T7ee787uiT7ee787.T7ee787telemetry Tff7b72import Te6edf3Telemetry
Tff7b72from T7ee787uiT7ee787.T7ee787objectdetails Tff7b72import Te6edf3ObjectDetails
Tff7b72from T7ee787uiT7ee787.T7ee787announces Tff7b72import Te6edf3Announces
Tff7b72from T7ee787uiT7ee787.T7ee787messages Tff7b72import Te6edf3MessagesTb4b4b4, Te6edf3ts_formatTb4b4b4, Te6edf3messages_screen_kv
Tff7b72from T7ee787uiT7ee787.T7ee787helpers Tff7b72import Te6edf3ContentNavigationDrawerTb4b4b4, Te6edf3DrawerListTb4b4b4, Te6edf3IconListItem

Tff7b72from T7ee787jnius Tff7b72import Te6edf3cast
Tff7b72from T7ee787jnius Tff7b72import Te6edf3autoclass
Tff7b72from T7ee787android Tff7b72import Te6edf3mActivity
Tff7b72from T7ee787androidT7ee787.T7ee787permissions Tff7b72import Te6edf3request_permissionsTb4b4b4, Te6edf3check_permission
Tff7b72from T7ee787androidT7ee787.T7ee787storage Tff7b72import Te6edf3primary_external_storage_pathTb4b4b4, Te6edf3secondary_external_storage_path

Tff7b72from T7ee787kivymdT7ee787.T7ee787utilsT7ee787.T7ee787set_bars_colors Tff7b72import Te6edf3set_bars_colors
Te6edf3android_api_version Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.os.Build$VERSIONTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffSDK_INT

Tff7b72elseTb4b4b4:
Tff7b72from T7ee787.T7ee787sidebandT7ee787.T7ee787core Tff7b72import Te6edf3SidebandCore

Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787layouts Tff7b72import Tff7b72*
Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787conversations Tff7b72import Te6edf3ConversationsTb4b4b4, Te6edf3MsgSyncTb4b4b4, Te6edf3NewConv
Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787announces Tff7b72import Te6edf3Announces
Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787telemetry Tff7b72import Te6edf3Telemetry
Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787objectdetails Tff7b72import Te6edf3ObjectDetails
Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787messages Tff7b72import Te6edf3MessagesTb4b4b4, Te6edf3ts_formatTb4b4b4, Te6edf3messages_screen_kv
Tff7b72from T7ee787.T7ee787uiT7ee787.T7ee787helpers Tff7b72import Te6edf3ContentNavigationDrawerTb4b4b4, Te6edf3DrawerListTb4b4b4, Te6edf3IconListItem

Tff7b72from T7ee787kivyT7ee787.T7ee787config Tff7b72import Te6edf3Config
Te6edf3ConfigTff7b72.Td2a8ffsetTb4b4b4(Ta5d6ff'Ta5d6ffinputTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffmouseTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffmouse,disable_multitouchTa5d6ff'Tb4b4b4)

Te6edf3dark_theme_text_color Tff7b72= Ta5d6ff"Ta5d6ffdddTa5d6ff"

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72from T7ee787jnius Tff7b72import Te6edf3autoclass
Tff7b72from T7ee787androidT7ee787.T7ee787runnable Tff7b72import Te6edf3run_on_ui_thread

Te6edf3TRANSITION_DURATION Tff7b72= T79c0ff0.25
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3ll_ot Tff7b72= T79c0ff0.55
Te6edf3ll_ft Tff7b72= T79c0ff0.275
Tff7b72elseTb4b4b4:
Te6edf3ll_ot Tff7b72= T79c0ff0.4
Te6edf3ll_ft Tff7b72= T79c0ff0.275

Tff7b72class T56d364SidebandAppTb4b4b4(Te6edf3MDAppTb4b4b4)Tb4b4b4:
Te6edf3STARTING Tff7b72= T79c0ff0x00
Te6edf3ACTIVE Tff7b72= T79c0ff0x01
Te6edf3PAUSED Tff7b72= T79c0ff0x02
Te6edf3STOPPING Tff7b72= T79c0ff0x03

Te6edf3PKGNAME Tff7b72= Ta5d6ff"Ta5d6ffio.unsigned.sidebandTa5d6ff"

Te6edf3SERVICE_TIMEOUT Tff7b72= T79c0ff30

Te6edf3EINK_BG_STR Tff7b72= Ta5d6ff"Ta5d6ff1,0,0,1Ta5d6ff"
Te6edf3EINK_BG_ARR Tff7b72= Tb4b4b4[T79c0ff1Tb4b4b4,T79c0ff0Tb4b4b4,T79c0ff0Tb4b4b4,T79c0ff1Tb4b4b4]

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72selfTff7b72.Td2a8fftitle Tff7b72= Ta5d6ff"Ta5d6ffSidebandTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72= Te6edf3SidebandAppTff7b72.Td2a8ffSTARTING
Tff7b72selfTff7b72.Td2a8ffandroid_service Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffapp_dir Tff7b72= Te6edf3plyerTff7b72.Td2a8ffstoragepathTff7b72.Td2a8ffget_application_dirTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffshaders_disabled Tff7b72= Te6edf3__disable_shaders__
Tff7b72selfTff7b72.Td2a8ffkeyboard_enabled Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffno_transition Tff7b72= Te6edf3NoTransitionTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffslide_transition Tff7b72= Te6edf3SlideTransitionTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsideband Tff7b72= Te6edf3SidebandCoreTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3is_clientTff7b72=Tff7b72TrueTb4b4b4, Te6edf3android_app_dirTff7b72=Tff7b72selfTff7b72.Td2a8ffapp_dirTb4b4b4, Te6edf3verboseTff7b72=Te6edf3__debug_build__Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsideband Tff7b72= Te6edf3SidebandCoreTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3is_clientTff7b72=Tff7b72FalseTb4b4b4, Te6edf3verboseTff7b72=Tb4b4b4(Te6edf3argsTff7b72.Td2a8ffverbose Tff7b72or Te6edf3__debug_build__Tb4b4b4)Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffset_ui_themeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdark_theme_text_color Tff7b72= Te6edf3dark_theme_text_color

Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffmessages_view Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffmap Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffmap_layer Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffmap_screen Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8fftelemetry_screen Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffmap_cache Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmap_cache
Tff7b72selfTff7b72.Td2a8ffoffline_source Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffmap_settings_screen Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffobject_details_screen Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsettings_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8fftelemetry_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconnectivity_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffrepository_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_ready Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_serial_ready Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8fffinal_load_completed Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffservice_last_available Tff7b72= T79c0ff0

Te6edf3WindowTff7b72.Td2a8ffsoftinput_mode Tff7b72= Ta5d6ff"Ta5d6ffbelow_targetTa5d6ff"
Tff7b72selfTff7b72.Td2a8fficon Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffasset_dirTff7b72+Ta5d6ff"Ta5d6ff/icon.pngTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffnotification_icon Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffasset_dirTff7b72+Ta5d6ff"Ta5d6ff/notification_icon.pngTa5d6ff"

Tff7b72selfTff7b72.Td2a8ffconnectivity_updater Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8fflast_map_update Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8fflast_telemetry_received Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8ffreposository_url Tff7b72= Tff7b72None


T8b949e#################################################
T8b949e# Application Startup #
T8b949e#################################################

Tff7b72def Td2a8ffupdate_loading_textTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTb4b4b4:
Te6edf3loadingstate Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffinit.loadingstateTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3loadingstateTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnecting_statusTff7b72.Td2a8fftext Tff7b72= Te6edf3loadingstate

Tff7b72def Td2a8ffupdate_init_statusTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_loading_textTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffservice_availableTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffservice_last_available Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffstart_finalTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffloading_updaterTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffstart_coreTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloading_updater Tff7b72= Te6edf3ClockTff7b72.Td2a8ffschedule_intervalTb4b4b4(Tff7b72selfTff7b72.Td2a8ffupdate_init_statusTb4b4b4, T79c0ff0.1Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffcheck_permissionsTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcheck_bluetooth_permissionsTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffstart_serviceTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_intervalTb4b4b4(Tff7b72selfTff7b72.Td2a8ffjobsTb4b4b4, T79c0ff1.5Tb4b4b4)

Tff7b72def Td2a8ffdismiss_splashTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72from T7ee787android Tff7b72import Te6edf3loadingscreen
Te6edf3loadingscreenTff7b72.Td2a8ffhide_loading_screenTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3dismiss_splashTb4b4b4, T79c0ff0Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffset_bars_colorsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsjobTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.loadedTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.runningTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.foregroundTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3sjobTb4b4b4, T79c0ff6.5Tb4b4b4)
Tff7b72def Td2a8ffstart_serviceTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffRunning on Android API level Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3android_api_versionTb4b4b4)Tb4b4b4)

Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffLaunching platform-specific service for RNS and LXMFTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffandroid_service Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffio.unsigned.sideband.ServiceSidebandserviceTa5d6ff'Tb4b4b4)
Te6edf3mActivity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonActivityTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3argument Tff7b72= Tff7b72selfTff7b72.Td2a8ffapp_dir
Tff7b72selfTff7b72.Td2a8ffandroid_serviceTff7b72.Td2a8ffstartTb4b4b4(Te6edf3mActivityTb4b4b4, Te6edf3argumentTb4b4b4)

Tff7b72def Td2a8ffstart_finalTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
T8b949e# Start local core instance
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

T8b949e# Pre-load announce stream widgets
Tff7b72selfTff7b72.Td2a8ffupdate_loading_textTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffloader_initTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_initTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_initTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffinformation_initTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffobject_details_screen Tff7b72= Tff7b72None

T8b949e# Wait a little extra for user to react to permissions prompt
T8b949e# if RNS.vendor.platformutils.get_platform() == "android":
T8b949e# if self.sideband.first_run:
T8b949e# time.sleep(6)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fffirst_runTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffguide_actionTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8fffpTb4b4b4(Te6edf3delta_timeTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrequest_permissionsTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3fpTb4b4b4, T79c0ff5Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3messages_screen_kvTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72= Te6edf3SidebandAppTff7b72.Td2a8ffACTIVE
Tff7b72selfTff7b72.Td2a8ffloading_updaterTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffinal_load_completed Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffkeyboard_enabled Tff7b72= Tff7b72True

Tff7b72def Td2a8ffcheck_errorsTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffstartup.errors.rnodeTa5d6ff"Tb4b4b4) Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3description Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffstartup.errors.rnodeTa5d6ff"Tb4b4b4)Tb4b4b4[Ta5d6ff"Ta5d6ffdescriptionTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffstartup.errors.rnodeTa5d6ff"Tb4b4b4, Tff7b72NoneTb4b4b4)
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,
Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhw_error_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffHardware ErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffWhen starting a connected RNode, Reticulum reported the following error:Tffea00\nTffea00\nTa5d6ff[i]Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3descriptionTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff[/i]Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhw_error_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhw_error_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3check_errorsTb4b4b4, T79c0ff1.5Tb4b4b4)


T8b949e#################################################
T8b949e# General helpers #
T8b949e#################################################

Tff7b72def Td2a8ffset_ui_themeTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffmaterial_style Tff7b72= Ta5d6ff"Ta5d6ffM3Ta5d6ff"
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffwidget_style Tff7b72= Ta5d6ff"Ta5d6ffandroidTa5d6ff"
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffaccent_palette Tff7b72= Ta5d6ff"Ta5d6ffOrangeTa5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_allow_requests_from_anyoneTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffprimary_palette Tff7b72= Ta5d6ff"Ta5d6ffDeepOrangeTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffprimary_palette Tff7b72= Ta5d6ff"Ta5d6ffBlueGrayTa5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdark_uiTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_style Tff7b72= Ta5d6ff"Ta5d6ffDarkTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_style Tff7b72= Ta5d6ff"Ta5d6ffLightTa5d6ff"

Tff7b72selfTff7b72.Td2a8ffupdate_ui_colorsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffupdate_ui_colorsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdark_uiTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcolor_reject Tff7b72= Te6edf3colorsTb4b4b4[Ta5d6ff"Ta5d6ffDeepOrangeTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ff900Ta5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffcolor_accept Tff7b72= Te6edf3colorsTb4b4b4[Ta5d6ff"Ta5d6ffLightGreenTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ff700Ta5d6ff"Tb4b4b4]
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcolor_reject Tff7b72= Te6edf3colorsTb4b4b4[Ta5d6ff"Ta5d6ffDeepOrangeTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ff800Ta5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffcolor_accept Tff7b72= Te6edf3colorsTb4b4b4[Ta5d6ff"Ta5d6ffLightGreenTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ff700Ta5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffapply_eink_modsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffupdate_ui_themeTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdark_uiTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_style Tff7b72= Ta5d6ff"Ta5d6ffDarkTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_style Tff7b72= Ta5d6ff"Ta5d6ffLightTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffapply_eink_modsTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffupdate_ui_colorsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffapply_eink_modsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffeink_modeTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffroot Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffmd_bg_color Tff7b72= Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffbg_light

Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffroot Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffmd_bg_color Tff7b72= Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffbg_darkest

Tff7b72def Td2a8ffset_bars_colorsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3set_bars_colorsTb4b4b4(
Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8ffprimary_colorTb4b4b4, T8b949e# status bar color
Tb4b4b4[T79c0ff0Tb4b4b4,T79c0ff0Tb4b4b4,T79c0ff0Tb4b4b4,T79c0ff0Tb4b4b4]Tb4b4b4, T8b949e# navigation bar color
Ta5d6ff"Ta5d6ffLightTa5d6ff"Tb4b4b4, T8b949e# icons color of status bar
Tb4b4b4)

Tff7b72def Td2a8ffclose_any_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffshare_textTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3textTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3Intent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.IntentTa5d6ff'Tb4b4b4)
Te6edf3JString Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffjava.lang.StringTa5d6ff'Tb4b4b4)

Te6edf3shareIntent Tff7b72= Te6edf3IntentTb4b4b4(Tb4b4b4)
Te6edf3shareIntentTff7b72.Td2a8ffsetActionTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffACTION_SENDTb4b4b4)
Te6edf3shareIntentTff7b72.Td2a8ffsetTypeTb4b4b4(Ta5d6ff"Ta5d6fftext/plainTa5d6ff"Tb4b4b4)
Te6edf3shareIntentTff7b72.Td2a8ffputExtraTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffEXTRA_TEXTTb4b4b4, Te6edf3JStringTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4)

Te6edf3mActivityTff7b72.Td2a8ffstartActivityTb4b4b4(Te6edf3shareIntentTb4b4b4)

Tff7b72def Td2a8ffshare_imageTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3imageTb4b4b4, Te6edf3filenameTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3save_path Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffexports_dir
Te6edf3file_path Tff7b72= Te6edf3save_pathTff7b72+Ta5d6ff"Ta5d6ff/Ta5d6ff"Tff7b72+Te6edf3filename

Tff7b72tryTb4b4b4:
Tff7b72if Tff7b72not Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisdirTb4b4b4(Te6edf3save_pathTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCreating directory: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3save_pathTb4b4b4)Tb4b4b4)
Te6edf3osTff7b72.Td2a8ffmakedirsTb4b4b4(Te6edf3save_pathTb4b4b4)

Te6edf3Intent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroid.content.IntentTa5d6ff"Tb4b4b4)
Te6edf3Uri Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroid.net.UriTa5d6ff"Tb4b4b4)
Te6edf3File Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffjava.io.FileTa5d6ff"Tb4b4b4)
Te6edf3FileProvider Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroidx.core.content.FileProviderTa5d6ff"Tb4b4b4)

Te6edf3imageTff7b72.Td2a8ffsaveTb4b4b4(Te6edf3file_pathTb4b4b4)
Te6edf3i_file Tff7b72= Te6edf3FileTb4b4b4(Te6edf3file_pathTb4b4b4)
Te6edf3image_uri Tff7b72= Te6edf3FileProviderTff7b72.Td2a8ffgetUriForFileTb4b4b4(Te6edf3mActivityTb4b4b4, Ta5d6ff"Ta5d6ffio.unsigned.sideband.providerTa5d6ff"Tb4b4b4, Te6edf3i_fileTb4b4b4)

Te6edf3shareIntent Tff7b72= Te6edf3IntentTb4b4b4(Tb4b4b4)
Te6edf3shareIntentTff7b72.Td2a8ffsetActionTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffACTION_SENDTb4b4b4)
Te6edf3shareIntentTff7b72.Td2a8ffsetTypeTb4b4b4(Ta5d6ff"Ta5d6ffimage/pngTa5d6ff"Tb4b4b4)
Te6edf3shareIntentTff7b72.Td2a8ffputExtraTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffEXTRA_STREAMTb4b4b4, Te6edf3castTb4b4b4(Ta5d6ff'Ta5d6ffandroid.os.ParcelableTa5d6ff'Tb4b4b4, Te6edf3image_uriTb4b4b4)Tb4b4b4)
Te6edf3mActivityTff7b72.Td2a8ffstartActivityTb4b4b4(Te6edf3shareIntentTb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffExport ErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffThe QR-code could not be exported and shared:Tffea00\nTffea00\nTa5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffon_pauseTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffflag.focusfix_pauseTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffflag.focusfix_pauseTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72return Tff7b72True
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffApp pausing...Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.runningTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.foregroundTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72= Te6edf3SidebandAppTff7b72.Td2a8ffPAUSED
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffshould_persist_dataTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffscroll Tff7b72= T79c0ff1

Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffApp pausedTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72return Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72True

Tff7b72def Td2a8ffon_resumeTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffflag.focusfix_resumeTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffflag.focusfix_resumeTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72return Tff7b72True
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffApp resuming...Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.runningTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.foregroundTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.clear_notificationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72= Te6edf3SidebandAppTff7b72.Td2a8ffACTIVE
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffscroll Tff7b72= T79c0ff1
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffConversations view did not existTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)

Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffApp resumedTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)

Tff7b72def Td2a8ffon_stopTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffApp stopping...Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.runningTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.foregroundTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72= Te6edf3SidebandAppTff7b72.Td2a8ffSTOPPING
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffApp stoppedTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)

Tff7b72def Td2a8ffis_in_foregroundTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72== Te6edf3SidebandAppTff7b72.Td2a8ffACTIVETb4b4b4:
Tff7b72return Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72False

Tff7b72def Td2a8ffcheck_bluetooth_permissionsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3mActivity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonActivityTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3Context Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.ContextTa5d6ff'Tb4b4b4)
Tff7b72if Te6edf3android_api_version Tff7b72> T79c0ff30Tb4b4b4:
Te6edf3bt_permission_name Tff7b72= Ta5d6ff"Ta5d6ffandroid.permission.BLUETOOTH_CONNECTTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3bt_permission_name Tff7b72= Ta5d6ff"Ta5d6ffandroid.permission.BLUETOOTHTa5d6ff"

Tff7b72if Te6edf3check_permissionTb4b4b4(Te6edf3bt_permission_nameTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffHave bluetooth connect permissionsTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.bluetoothTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffDo not have bluetooth connect permissionsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.bluetoothTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.bluetoothTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffcheck_permissionsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3mActivity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonActivityTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3Context Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.ContextTa5d6ff'Tb4b4b4)
Te6edf3NotificationManager Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.app.NotificationManagerTa5d6ff'Tb4b4b4)
Te6edf3notification_service Tff7b72= Te6edf3castTb4b4b4(Te6edf3NotificationManagerTb4b4b4, Te6edf3mActivityTff7b72.Td2a8ffgetSystemServiceTb4b4b4(Te6edf3ContextTff7b72.Td2a8ffNOTIFICATION_SERVICETb4b4b4)Tb4b4b4)

Tff7b72if Te6edf3notification_serviceTff7b72.Td2a8ffareNotificationsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.notificationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.POST_NOTIFICATIONSTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffHave notification permissionsTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.notificationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffDo not have notification permissionsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.notificationsTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffpermissions.notificationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffrequest_permissionsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrequest_notifications_permissionTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffrequest_notifications_permissionTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.POST_NOTIFICATIONSTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffRequesting notification permissionTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3request_permissionsTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffandroid.permission.POST_NOTIFICATIONSTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcheck_permissionsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffcheck_storage_permissionTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3storage_permissions_ok Tff7b72= Tff7b72False
Tff7b72if Te6edf3android_api_version Tff7b72< T79c0ff30Tb4b4b4:
Tff7b72if Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.WRITE_EXTERNAL_STORAGETa5d6ff"Tb4b4b4) Tff7b72and Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.READ_EXTERNAL_STORAGETa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3storage_permissions_ok Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrequest_storage_permissionTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3Environment Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.os.EnvironmentTa5d6ff'Tb4b4b4)

Tff7b72if Te6edf3EnvironmentTff7b72.Td2a8ffisExternalStorageManagerTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3storage_permissions_ok Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffStorage PermissionTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffSideband needs external storage permission to to read offline map files.Tffea00\nTffea00\nTa5d6ffOn this Android version, the Manage All Files permission is needed, since normal external storage permission is no longer supported.Tffea00\nTffea00\nTa5d6ffSideband will only ever read and write to files you select, and does not read any other data from your system.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrequest_storage_permissionTb4b4b4(Tb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72return Te6edf3storage_permissions_ok

Tff7b72def Td2a8ffrequest_storage_permissionTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Te6edf3android_api_version Tff7b72< T79c0ff30Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.WRITE_EXTERNAL_STORAGETa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffRequesting storage write permissionTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3request_permissionsTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffandroid.permission.WRITE_EXTERNAL_STORAGETa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.READ_EXTERNAL_STORAGETa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffRequesting storage read permissionTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3request_permissionsTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffandroid.permission.READ_EXTERNAL_STORAGETa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3Intent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.IntentTa5d6ff'Tb4b4b4)
Te6edf3Settings Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.provider.SettingsTa5d6ff'Tb4b4b4)
Te6edf3pIntent Tff7b72= Te6edf3IntentTb4b4b4(Tb4b4b4)
Te6edf3pIntentTff7b72.Td2a8ffsetActionTb4b4b4(Te6edf3SettingsTff7b72.Td2a8ffACTION_MANAGE_ALL_FILES_ACCESS_PERMISSIONTb4b4b4)
Te6edf3mActivityTff7b72.Td2a8ffstartActivityTb4b4b4(Te6edf3pIntentTb4b4b4)

Tff7b72def Td2a8ffrequest_bluetooth_permissionsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3check_permissionTb4b4b4(Ta5d6ff"Ta5d6ffandroid.permission.BLUETOOTH_CONNECTTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffRequesting bluetooth permissionTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3request_permissionsTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffandroid.permission.BLUETOOTH_CONNECTTa5d6ff"Tb4b4b4]Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffcheck_bluetooth_permissionsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffon_new_intentTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3intentTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffReceived intentTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3intent_action Tff7b72= Te6edf3intentTff7b72.Td2a8ffgetActionTb4b4b4(Tb4b4b4)
Te6edf3action Tff7b72= Tff7b72None
Te6edf3data Tff7b72= Tff7b72None

Tff7b72if Te6edf3intent_action Tff7b72== Ta5d6ff"Ta5d6ffandroid.intent.action.WEB_SEARCHTa5d6ff"Tb4b4b4:
Te6edf3SearchManager Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.app.SearchManagerTa5d6ff'Tb4b4b4)
Te6edf3data Tff7b72= Te6edf3intentTff7b72.Td2a8ffgetStringExtraTb4b4b4(Te6edf3SearchManagerTff7b72.Td2a8ffQUERYTb4b4b4)
Tff7b72if Te6edf3dataTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstartswithTb4b4b4(Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffURI_SCHEMATb4b4b4)Tb4b4b4:
Te6edf3action Tff7b72= Ta5d6ff"Ta5d6fflxm_uriTa5d6ff"

Tff7b72if Te6edf3intent_action Tff7b72== Ta5d6ff"Ta5d6ffandroid.intent.action.VIEWTa5d6ff"Tb4b4b4:
Te6edf3data Tff7b72= Te6edf3intentTff7b72.Td2a8ffgetDataTb4b4b4(Tb4b4b4)Tff7b72.Td2a8fftoStringTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3dataTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstartswithTb4b4b4(Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffURI_SCHEMATb4b4b4)Tb4b4b4:
Te6edf3action Tff7b72= Ta5d6ff"Ta5d6fflxm_uriTa5d6ff"

Tff7b72if Te6edf3action Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhandle_actionTb4b4b4(Te6edf3actionTb4b4b4, Te6edf3dataTb4b4b4)

Tff7b72def Td2a8ffhandle_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3actionTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3action Tff7b72== Ta5d6ff"Ta5d6fflxm_uriTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffingest_lxm_uriTb4b4b4(Te6edf3dataTb4b4b4)

Tff7b72def Td2a8ffingest_lxm_uriTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3lxm_uriTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffIngesting LXMF paper message from URI: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3lxm_uriTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxm_ingest_uriTb4b4b4(Te6edf3lxm_uriTb4b4b4)
Tff7b72def Td2a8ffbuildTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3FONT_PATH Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffasset_dirTff7b72+Ta5d6ff"Ta5d6ff/fontsTa5d6ff"
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_darwinTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fficon Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffasset_dirTff7b72+Ta5d6ff"Ta5d6ff/icon_macos_formed.pngTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fficon Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffasset_dirTff7b72+Ta5d6ff"Ta5d6ff/icon.pngTa5d6ff"

Tff7b72selfTff7b72.Td2a8ffannounces_view Tff7b72= Tff7b72None

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3ActivityInfo Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.pm.ActivityInfoTa5d6ff'Tb4b4b4)
Te6edf3activity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonActivityTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3activityTff7b72.Td2a8ffsetRequestedOrientationTb4b4b4(Te6edf3ActivityInfoTff7b72.Td2a8ffSCREEN_ORIENTATION_UNSPECIFIEDTb4b4b4)

Tff7b72from T7ee787android Tff7b72import Te6edf3activity Tff7b72as Te6edf3a_activity
Te6edf3a_activityTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_new_intentTff7b72=Tff7b72selfTff7b72.Td2a8ffon_new_intentTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffeink_modeTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3root_layoutTff7b72.Td2a8ffreplaceTb4b4b4(Ta5d6ff"Ta5d6ffapp.theme_cls.bg_darkestTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffapp.theme_cls.bg_lightTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3root_layoutTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffnav_drawer Tff7b72= Te6edf3screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawer

Tff7b72return Te6edf3screen

Tff7b72def Td2a8ff_state_jobsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3props Tff7b72= Tb4b4b4[Tb4b4b4]

Tff7b72def Td2a8ffjobsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3delta_timeTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fffinal_load_completedTb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4) Tff7b72and Tff7b72not Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffservice_availableTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72- Tff7b72selfTff7b72.Td2a8ffservice_last_available Tff7b72> Te6edf3SidebandAppTff7b72.Td2a8ffSERVICE_TIMEOUTTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffapp_state Tff7b72== Te6edf3SidebandAppTff7b72.Td2a8ffACTIVETb4b4b4:
Te6edf3info_text Tff7b72= Ta5d6ff"Ta5d6ffThe Reticulum and LXMF service seem to have disappeared, and Sideband is no longer connected. This should not happen, and probably indicates a bug in the background service. Please restart Sideband to regain connectivity.Ta5d6ff"
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Te6edf3info_textTb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffquit_actionTb4b4b4(Te6edf3sTb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)
Tff7b72selfTff7b72.Td2a8fffinal_load_completed Tff7b72= Tff7b72False
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffquit_actionTb4b4b4(Te6edf3sTb4b4b4)

Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffservice_last_available Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)


Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffdest_knownTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_area_detectTb4b4b4(Tb4b4b4)

Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.unread_conversationsTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.lxmf_sync_dialog_openTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4) Tff7b72and Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3state Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state

Te6edf3dlg_sp Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffget_sync_progressTb4b4b4(Tb4b4b4)Tff7b72*T79c0ff100Tb4b4b4; Te6edf3dlg_ss Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3state Tff7b72> Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_IDLE Tff7b72and Te6edf3state Tff7b72<Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffvalue Tff7b72= Te6edf3dlg_sp
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffvalue Tff7b72= T79c0ff0.1

Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_statusTff7b72.Td2a8fftext Tff7b72= Te6edf3dlg_ss

Tff7b72if Te6edf3state Tff7b72> Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_IDLE Tff7b72and Te6edf3state Tff7b72< Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffstop_buttonTb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffstop_buttonTb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffannounces_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.new_announcesTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffannounces_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap_screen Tff7b72and Tffa657hasattrTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTb4b4b4, Ta5d6ff"Ta5d6ffmapTa5d6ff"Tb4b4b4) Tff7b72and Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_latTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTff7b72.Td2a8fflat
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_lonTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTff7b72.Td2a8fflon
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_zoomTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoom

Tff7b72selfTff7b72.Td2a8fflast_telemetry_received Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.last_telemetryTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4) Tff7b72or T79c0ff0
Tff7b72if Tff7b72selfTff7b72.Td2a8fflast_telemetry_received Tff7b72> Tff7b72selfTff7b72.Td2a8fflast_map_updateTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_update_markersTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.new_conversationsTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.viewupdate.conversationsTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Te6edf3imr Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6fflxm_uri_ingest.resultTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72if Te6edf3imr Tff7b72and Te6edf3imr Tff7b72!= Ta5d6ff"Ta5d6ffNoneTa5d6ff" Tff7b72and Te6edf3imr Tff7b72!= Ta5d6ff"Ta5d6ffFalseTa5d6ff"Tb4b4b4:
Te6edf3info_text Tff7b72= Tffa657strTb4b4b4(Te6edf3imrTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6fflxm_uri_ingest.resultTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffMessage ScanTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Tffa657strTb4b4b4(Te6edf3info_textTb4b4b4)Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Te6edf3hwe Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffhardware_operation.errorTa5d6ff"Tb4b4b4, Te6edf3allow_cacheTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72if Te6edf3hwe Tff7b72and Te6edf3hwe Tff7b72!= Ta5d6ff"Ta5d6ffNoneTa5d6ff" Tff7b72and Te6edf3hwe Tff7b72!= Ta5d6ff"Ta5d6ffFalseTa5d6ff"Tb4b4b4:
Te6edf3info_text Tff7b72= Tffa657strTb4b4b4(Te6edf3hweTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffhardware_operation.errorTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Tffa657strTb4b4b4(Te6edf3info_textTb4b4b4)Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffon_startTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fflast_exit_event Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffduration Tff7b72= Te6edf3TRANSITION_DURATION
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_completeTff7b72=Tff7b72selfTff7b72.Td2a8ffscreen_transition_completeTb4b4b4)

Te6edf3EventLoopTff7b72.Td2a8ffwindowTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_keyboardTff7b72=Tff7b72selfTff7b72.Td2a8ffkeyboard_eventTb4b4b4)
Te6edf3EventLoopTff7b72.Td2a8ffwindowTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_key_downTff7b72=Tff7b72selfTff7b72.Td2a8ffkeydown_eventTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffapp_version_infoTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ffSideband vTa5d6ff"Tff7b72+Te6edf3__version__Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3__variant__
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72selfTff7b72.Td2a8ffstart_coreTb4b4b4, T79c0ff0.25Tb4b4b4)

Tff7b72def Td2a8ffkeydown_eventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3instanceTb4b4b4, Te6edf3keyboardTb4b4b4, Te6edf3keycodeTb4b4b4, Te6edf3textTb4b4b4, Te6edf3modifiersTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffkeyboard_enabledTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Tb4b4b4(Tffa657lenTb4b4b4(Te6edf3modifiersTb4b4b4) Tff7b72> T79c0ff0 Tff7b72and Ta5d6ff"Ta5d6ffctrlTa5d6ff" Tff7b72in Te6edf3modifiersTb4b4b4)Tb4b4b4:
Tff7b72if Tffa657lenTb4b4b4(Te6edf3modifiersTb4b4b4) Tff7b72> T79c0ff0 Tff7b72and Ta5d6ff"Ta5d6ffshiftTa5d6ff" Tff7b72in Te6edf3modifiersTb4b4b4:
Te6edf3nav_mod Tff7b72= T79c0ff4
Tff7b72elif Tffa657lenTb4b4b4(Te6edf3modifiersTb4b4b4) Tff7b72> T79c0ff0 Tff7b72and Ta5d6ff"Ta5d6ffaltTa5d6ff" Tff7b72in Te6edf3modifiersTb4b4b4:
Te6edf3nav_mod Tff7b72= T79c0ff0.25
Tff7b72elseTb4b4b4:
Te6edf3nav_mod Tff7b72= T79c0ff1.0

Tff7b72if Te6edf3keycode Tff7b72== T79c0ff79 Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffdTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6fflTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffmap_nav_rightTb4b4b4(Te6edf3modifierTff7b72=Te6edf3nav_modTb4b4b4)
Tff7b72if Te6edf3keycode Tff7b72== T79c0ff80 Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffmap_nav_leftTb4b4b4(Te6edf3modifierTff7b72=Te6edf3nav_modTb4b4b4)
Tff7b72if Te6edf3keycode Tff7b72== T79c0ff81 Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffsTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffjTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffmap_nav_downTb4b4b4(Te6edf3modifierTff7b72=Te6edf3nav_modTb4b4b4)
Tff7b72if Te6edf3keycode Tff7b72== T79c0ff82 Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffwTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffkTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffmap_nav_upTb4b4b4(Te6edf3modifierTff7b72=Te6edf3nav_modTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffqTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ff-Ta5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffmap_nav_zoom_outTb4b4b4(Te6edf3modifierTff7b72=Te6edf3nav_modTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffeTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ff+Ta5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffmap_nav_zoom_inTb4b4b4(Te6edf3modifierTff7b72=Te6edf3nav_modTb4b4b4)

Tff7b72if Tff7b72True Tff7b72or Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tffa657lenTb4b4b4(Te6edf3modifiersTb4b4b4) Tff7b72> T79c0ff0 Tff7b72and Ta5d6ff"Ta5d6ffctrlTa5d6ff" Tff7b72in Te6edf3modifiersTb4b4b4:
Tff7b72if Te6edf3keycode Tff7b72< T79c0ff40 Tff7b72and Te6edf3keycode Tff7b72> T79c0ff29Tb4b4b4:
Te6edf3c_index Tff7b72= Te6edf3keycodeTff7b72-T79c0ff29
Tff7b72selfTff7b72.Td2a8ffconversation_index_actionTb4b4b4(Te6edf3c_indexTb4b4b4)

Tff7b72if Tffa657lenTb4b4b4(Te6edf3modifiersTb4b4b4) Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72if Te6edf3modifiersTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffctrlTa5d6ff"Tb4b4b4:
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffqTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffquit_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffwTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffquit_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmap_settings_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_map_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffclose_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffsensors_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_telemetry_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6fficons_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_telemetry_actionTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffsTa5d6ff" Tff7b72or Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_send_actionTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6fflTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_propagation_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_layers_actionTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffmTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation
Tff7b72selfTff7b72.Td2a8ffmap_show_peer_locationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffobject_hash
Tff7b72selfTff7b72.Td2a8ffmap_show_peer_locationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffpTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_actionTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_actionTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_viewTb4b4b4, Te6edf3from_convTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffreload_telemetryTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_actionTb4b4b4(Tff7b72selfTb4b4b4)

Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffoTa5d6ff"Tb4b4b4:
T8b949e# if self.root.ids.screen_manager.current == "telemetry_screen":
Tff7b72selfTff7b72.Td2a8ffmap_display_own_telemetryTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffrTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fflxmf_sync_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6fftelemetry_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffobject_hash Tff7b72== Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconverse_from_telemetryTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)
Tff7b72if Tffa657lenTb4b4b4(Te6edf3modifiersTb4b4b4) Tff7b72> T79c0ff0 Tff7b72and Te6edf3modifiersTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72== Ta5d6ff'Ta5d6ffctrlTa5d6ff' Tff7b72and Tb4b4b4(Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffgTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffguide_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72if Te6edf3text Tff7b72== Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffdialog_openTa5d6ff"Tb4b4b4) Tff7b72or Tff7b72not Tff7b72selfTff7b72.Td2a8ffdialog_openTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffnew_conversation_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72def Td2a8ffkeyboard_eventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3windowTb4b4b4, Te6edf3keyTb4b4b4, Tff7b72*Te6edf3largsTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffkeyboard_enabledTb4b4b4:
T8b949e# Handle escape/back
Tff7b72if Te6edf3key Tff7b72== T79c0ff27Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72if Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72- Tff7b72selfTff7b72.Td2a8fflast_exit_event Tff7b72< T79c0ff2Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffquit_actionTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fflast_exit_event Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffhardware_rnode_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_hardware_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffhardware_modem_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_hardware_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffhardware_serial_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_hardware_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffclose_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmap_settings_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_map_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffsensors_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_telemetry_actionTb4b4b4(Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6fficons_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_sub_telemetry_actionTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72return Tff7b72True

Tff7b72def Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3wTb4b4b4, Te6edf3hideTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Tff7b72if Tffa657hasattrTb4b4b4(Te6edf3wTb4b4b4, Ta5d6ff"Ta5d6ffsaved_attrsTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3hideTb4b4b4:
Te6edf3wTff7b72.Td2a8ffheightTb4b4b4, Te6edf3wTff7b72.Td2a8ffsize_hint_yTb4b4b4, Te6edf3wTff7b72.Td2a8ffopacityTb4b4b4, Te6edf3wTff7b72.Td2a8ffdisabled Tff7b72= Te6edf3wTff7b72.Td2a8ffsaved_attrs
Tff7b72del Te6edf3wTff7b72.Td2a8ffsaved_attrs
Tff7b72elif Te6edf3hideTb4b4b4:
Te6edf3wTff7b72.Td2a8ffsaved_attrs Tff7b72= Te6edf3wTff7b72.Td2a8ffheightTb4b4b4, Te6edf3wTff7b72.Td2a8ffsize_hint_yTb4b4b4, Te6edf3wTff7b72.Td2a8ffopacityTb4b4b4, Te6edf3wTff7b72.Td2a8ffdisabled
Te6edf3wTff7b72.Td2a8ffheightTb4b4b4, Te6edf3wTff7b72.Td2a8ffsize_hint_yTb4b4b4, Te6edf3wTff7b72.Td2a8ffopacityTb4b4b4, Te6edf3wTff7b72.Td2a8ffdisabled Tff7b72= T79c0ff0Tb4b4b4, Tff7b72NoneTb4b4b4, T79c0ff0Tb4b4b4, Tff7b72True

Tff7b72def Td2a8ffui_clipboard_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72if Tffa657lenTb4b4b4(Te6edf3senderTff7b72.Td2a8fftextTb4b4b4) Tff7b72== T79c0ff0Tb4b4b4:
Te6edf3senderTff7b72.Td2a8fftext Tff7b72= Te6edf3ClipboardTff7b72.Td2a8ffpasteTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3ClipboardTff7b72.Td2a8ffcopyTb4b4b4(Te6edf3senderTff7b72.Td2a8fftextTb4b4b4)
Te6edf3action Tff7b72= Ta5d6ff"Ta5d6fftapTa5d6ff" Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4) Tff7b72else Ta5d6ff"Ta5d6ffclickTa5d6ff"
Te6edf3toastTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffField copied, double-Tffd700{Te6edf3actionTffd700}Ta5d6ff any empty field to pasteTa5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffAn error occurred while handling clipboard action: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72def Td2a8ffloader_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffloader_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_loader_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffloader_screenTb4b4b4)

Tff7b72def Td2a8ffloader_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3targetTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffloader_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_initTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffloader_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffquit_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffshould_persist_dataTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffexit_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffexit_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_exit_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffexit_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Te6edf3NoTransitionTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffexit_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.runningTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.foregroundTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)

Tff7b72def Td2a8fffinal_exitTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffStopping service...Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.service_stopTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72while Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffservice_availableTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.2Tb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffService stoppedTa5d6ff"Tb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffFinishing activityTa5d6ff"Tb4b4b4)
Te6edf3activity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonActivityTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3activityTff7b72.Td2a8fffinishAndRemoveTaskTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8ffexitTb4b4b4(Tb4b4b4)
Te6edf3MDAppTff7b72.Td2a8ffget_running_appTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)
Te6edf3WindowTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)

Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3final_exitTb4b4b4, T79c0ff0.85Tb4b4b4)

Tff7b72def Td2a8ffannounce_now_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_announceTb4b4b4(Tb4b4b4)

Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffAnnounce SentTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYour LXMF address has been announced on all available interfacesTa5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)


T8b949e#################################################
T8b949e# Screens #
T8b949e#################################################

T8b949e### Messages (conversation) screen
T8b949e######################################
Tff7b72def Td2a8ffconversation_from_announce_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3context_destTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffhas_conversationTb4b4b4(Te6edf3context_destTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffcreate_conversationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.new_conversationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffopen_conversationTb4b4b4(Te6edf3context_destTb4b4b4)

Tff7b72def Td2a8ffconversation_index_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3indexTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72None Tff7b72and Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8fflist Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3i Tff7b72= Te6edf3indexTff7b72-T79c0ff1
Te6edf3c Tff7b72= Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8fflistTff7b72.Td2a8ffchildren
Tff7b72if Tffa657lenTb4b4b4(Te6edf3cTb4b4b4) Tff7b72> Te6edf3iTb4b4b4:
Te6edf3item Tff7b72= Te6edf3cTb4b4b4[Tb4b4b4(Tffa657lenTb4b4b4(Te6edf3cTb4b4b4)Tff7b72-T79c0ff1Tb4b4b4)Tff7b72-Te6edf3iTb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconversation_actionTb4b4b4(Te6edf3itemTb4b4b4)

Tff7b72def Td2a8ffconversation_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3context_dest Tff7b72= Te6edf3senderTff7b72.Td2a8ffsb_uid
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72def Td2a8ffcbuTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.15Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbuTb4b4b4, T79c0ff0.15Tff7b72+T79c0ff0.25Tb4b4b4)

Tff7b72def Td2a8ffopen_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3context_destTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paper Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_command Tff7b72= Tff7b72False
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffpropagation_by_defaultTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction
Tff7b72selfTff7b72.Td2a8ffmessages_view Tff7b72= Te6edf3MessagesTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3context_destTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72for Te6edf3child Tff7b72in Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffchildrenTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffremove_widgetTb4b4b4(Te6edf3childTb4b4b4)

Te6edf3list_widget Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffget_widgetTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3list_widgetTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffscroll_y Tff7b72= T79c0ff0.0

Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_toolbarTff7b72.Td2a8fftitle Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffpeer_display_nameTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation Tff7b72= Te6edf3context_dest
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.active_conversationTa5d6ff"Tb4b4b4, Te6edf3context_destTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffnokeys_textTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessage_area_detectTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False


Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffread_conversationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.unread_conversationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffscbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffscroll_y Tff7b72= T79c0ff0.0
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3scbTb4b4b4, T79c0ff0.33Tb4b4b4)

Tff7b72def Td2a8ffclose_messages_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffmessage_send_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72return

Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_send_dispatchTb4b4b4(Te6edf3senderTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.20Tb4b4b4)

Tff7b72def Td2a8ffmessage_send_dispatchTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_send_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72and Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_propagation_nodeTb4b4b4(Tb4b4b4) Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffsend_error_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffPropagated delivery was requested, but no active LXMF propagation nodes were found. Cannot send message.Tffea00\nTffea00\nTa5d6ffWait for a Propagation Node to announce on the network, or manually specify one in the settings.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[
Te6edf3MDRectangleFlatButtonTb4b4b4(
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,
Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4,
Te6edf3on_releaseTff7b72=Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffclose_send_error_dialog
Tb4b4b4)
Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffsend_error_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3msg_content Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8fftext
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_commandTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsend_commandTb4b4b4(Te6edf3msg_contentTb4b4b4, Te6edf3context_destTb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffscroll_y Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8ffjobsTb4b4b4(T79c0ff0Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffsend_error_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCould not send the command. Check that the syntax is correct, and that the command is supported.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[
Te6edf3MDRectangleFlatButtonTb4b4b4(
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,
Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4,
Te6edf3on_releaseTff7b72=Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffclose_send_error_dialog
Tb4b4b4)
Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffsend_error_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72elif Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paperTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffpaper_messageTb4b4b4(Te6edf3msg_contentTb4b4b4, Te6edf3context_destTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffscroll_y Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8ffjobsTb4b4b4(T79c0ff0Tb4b4b4)
Tff7b72elif Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsend_messageTb4b4b4(Te6edf3msg_contentTb4b4b4, Te6edf3context_destTb4b4b4, Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffscroll_y Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8ffjobsTb4b4b4(T79c0ff0Tb4b4b4)

Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffsend_error_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffErrorTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCould not send the messageTa5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[
Te6edf3MDRectangleFlatButtonTb4b4b4(
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,
Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4,
Te6edf3on_releaseTff7b72=Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffclose_send_error_dialog
Tb4b4b4)
Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffsend_error_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_send_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.5Tb4b4b4)

Tff7b72def Td2a8ffpeer_show_location_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation
Tff7b72selfTff7b72.Td2a8ffmap_show_peer_locationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffobject_hash
Tff7b72selfTff7b72.Td2a8ffmap_show_peer_locationTb4b4b4(Te6edf3context_destTb4b4b4)

Tff7b72def Td2a8ffpeer_show_telemetry_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffmessages_screenTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_actionTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_viewTb4b4b4, Te6edf3from_convTff7b72=Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffmessage_propagation_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_commandTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paper Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_command Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paperTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paper Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_command Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagationTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paper Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_command Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagation Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paper Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffoutbound_mode_command Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffupdate_message_widgetsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3toolbar_items Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_toolbarTff7b72.Td2a8ffidsTff7b72.Td2a8ffright_actionsTff7b72.Td2a8ffchildren
Te6edf3mode_item Tff7b72= Te6edf3toolbar_itemsTb4b4b4[T79c0ff1Tb4b4b4]

Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_paperTb4b4b4:
Te6edf3mode_itemTff7b72.Td2a8fficon Tff7b72= Ta5d6ff"Ta5d6ffqrcodeTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8ffhint_text Tff7b72= Ta5d6ff"Ta5d6ffPaper messageTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoutbound_mode_commandTb4b4b4:
Te6edf3mode_itemTff7b72.Td2a8fficon Tff7b72= Ta5d6ff"Ta5d6ffconsoleTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8ffhint_text Tff7b72= Ta5d6ff"Ta5d6ffSend command or requestTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffoutbound_mode_propagationTb4b4b4:
Te6edf3mode_itemTff7b72.Td2a8fficon Tff7b72= Ta5d6ff"Ta5d6fflan-connectTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8ffhint_text Tff7b72= Ta5d6ff"Ta5d6ffMessage for direct deliveryTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3mode_itemTff7b72.Td2a8fficon Tff7b72= Ta5d6ff"Ta5d6ffupload-networkTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_textTff7b72.Td2a8ffhint_text Tff7b72= Ta5d6ff"Ta5d6ffMessage for propagationTa5d6ff"
T8b949e# self.root.ids.message_text.hint_text = "Write message for delivery via propagation nodes"
Tff7b72def Td2a8ffkey_query_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffrequest_keyTb4b4b4(Te6edf3context_destTb4b4b4)Tb4b4b4:
Te6edf3keys_str Tff7b72= Ta5d6ff"Ta5d6ffPublic key information for Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3context_destTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff was requested from the network. Waiting for request to be answered.Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffnokeys_textTff7b72.Td2a8fftext Tff7b72= Te6edf3keys_str
Tff7b72elseTb4b4b4:
Te6edf3keys_str Tff7b72= Ta5d6ff"Ta5d6ffCould not send request. Check your connectivity and addresses.Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffnokeys_textTff7b72.Td2a8fftext Tff7b72= Te6edf3keys_str

Tff7b72def Td2a8ffmessage_area_detectTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffis_knownTb4b4b4(Te6edf3context_destTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffdest_known Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_input_partTb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffno_keys_partTb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffdest_known Tff7b72= Tff7b72False
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffnokeys_textTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3keys_str Tff7b72= Ta5d6ff"Ta5d6ffThe crytographic keys for the destination address are unknown at this time. You can wait for an announce to arrive, or query the network for the necessary keys.Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffnokeys_textTff7b72.Td2a8fftext Tff7b72= Te6edf3keys_str
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessage_input_partTb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffno_keys_partTb4b4b4, Tff7b72FalseTb4b4b4)


T8b949e### Conversations screen
T8b949e######################################
Tff7b72def Td2a8ffconversations_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffopen_conversationsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffconversations_viewTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72= Te6edf3ConversationsTb4b4b4(Tff7b72selfTb4b4b4)

Tff7b72for Te6edf3child Tff7b72in Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffchildrenTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffremove_widgetTb4b4b4(Te6edf3childTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffconversations_scrollviewTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffget_widgetTb4b4b4(Tb4b4b4)Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmessages_viewTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessages_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffmessages_scrollviewTff7b72.Td2a8ffactive_conversation Tff7b72= Tff7b72None

Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.clear_notificationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.10Tb4b4b4)

Tff7b72def Td2a8ffget_connectivity_textTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3connectivity_status Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Te6edf3connectivity_status Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffservice.connectivity_statusTa5d6ff"Tb4b4b4)Tb4b4b4)

Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffreticulumTff7b72.Td2a8ffis_connected_to_shared_instanceTb4b4b4:
Te6edf3connectivity_status Tff7b72= Ta5d6ff"Ta5d6ffSideband is connected via a shared Reticulum instance running on this system. Use the [b]rnstatus[/b] utility to obtain full connectivity info.Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3connectivity_status Tff7b72= Ta5d6ff"Ta5d6ffSideband is currently running a standalone or master Reticulum instance on this system. Use the [b]rnstatus[/b] utility to obtain full connectivity info.Ta5d6ff"

Tff7b72return Te6edf3connectivity_status
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffAn error occurred while retrieving connectivity status: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72return Ta5d6ff"Ta5d6ffCould not retrieve connectivity statusTa5d6ff"
Tff7b72def Td2a8ffconnectivity_statusTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3hs Tff7b72= Te6edf3dpTb4b4b4(T79c0ff22Tb4b4b4)

Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffConnectivity StatusTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffget_connectivity_textTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffcs_updaterTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffget_connectivity_textTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_updaterTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconnectivity_updater Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_updaterTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)

Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffconnectivity_updater Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_updaterTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_updater Tff7b72= Te6edf3ClockTff7b72.Td2a8ffschedule_intervalTb4b4b4(Te6edf3cs_updaterTb4b4b4, T79c0ff2.0Tb4b4b4)

Tff7b72def Td2a8ffingest_lxm_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_ingest_lxm_dialogTb4b4b4(Te6edf3senderTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.15Tb4b4b4)

Tff7b72def Td2a8ffopen_ingest_lxm_dialogTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3cancel_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCancelTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3ingest_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffRead LXMTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_acceptTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_acceptTb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffIngest Paper MessageTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYou can read LXMF paper messages into this program by scanning a QR-code containing the message with your device camera or QR-scanner app, and then opening the resulting link in Sideband.Tffea00\nTffea00\nTa5d6ffAlternatively, you can copy an [b]lxm://[/b] link from any source to your clipboard, and ingest it using the [i]Read LXM[/i] button below.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ingest_buttonTb4b4b4, Te6edf3cancel_button Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3lxm_uri Tff7b72= Te6edf3ClipboardTff7b72.Td2a8ffpasteTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3lxm_uriTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstartswithTb4b4b4(Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffURI_SCHEMATff7b72+Ta5d6ff"Ta5d6ff://Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3lxm_uri Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffURI_SCHEMATff7b72+Ta5d6ff"Ta5d6ff://Ta5d6ff"Tff7b72+Te6edf3lxm_uri

Tff7b72selfTff7b72.Td2a8ffingest_lxm_uriTb4b4b4(Te6edf3lxm_uriTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3response Tff7b72= Ta5d6ff"Ta5d6ffError ingesting message from URI: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6fflxm_uri_ingest.resultTa5d6ff"Tb4b4b4, Te6edf3responseTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffdl_noTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffdl_dsTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Te6edf3ingest_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3cancel_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_noTb4b4b4)

Te6edf3dialogTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_dismissTff7b72=Te6edf3dl_dsTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while creating ingest LXM dialog: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72def Td2a8fflxmf_sync_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fflxmf_sync_requestTb4b4b4(Te6edf3senderTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.15Tb4b4b4)

Tff7b72def Td2a8fflxmf_sync_requestTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_propagation_nodeTb4b4b4(Tb4b4b4) Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffCanTa5d6ff'Ta5d6fft SyncTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffNo active LXMF propagation nodes were found. Cannot fetch messages. Wait for a Propagation Node to announce on the network, or manually specify one in the settings.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_limitTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3sl Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_maxTa5d6ff"Tb4b4b4]
Tff7b72elseTb4b4b4:
Te6edf3sl Tff7b72= Tff7b72None

Tff7b72if Tff7b72not Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffmessage_sync_dialogTa5d6ff"Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialog Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3close_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCloseTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3stop_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffStopTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4)

Te6edf3dialog_content Tff7b72= Te6edf3MsgSyncTb4b4b4(Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffLXMF Sync via Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_propagation_nodeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657typeTff7b72=Ta5d6ff"Ta5d6ffcustomTa5d6ff"Tb4b4b4,
Te6edf3content_clsTff7b72=Te6edf3dialog_contentTb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3stop_buttonTb4b4b4, Te6edf3close_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffd_content Tff7b72= Te6edf3dialog_content
Tff7b72def Td2a8ffdl_closeTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.lxmf_sync_dialog_openTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffvalue Tff7b72= T79c0ff0.1
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_statusTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"

T8b949e# self.sideband.cancel_lxmf_sync()

Tff7b72def Td2a8ffdl_stopTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
T8b949e# self.sideband.setstate("app.flags.lxmf_sync_dialog_open", False)
T8b949e# dialog.dismiss()
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffcancel_lxmf_syncTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffstop_buttonTb4b4b4, Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.25Tb4b4b4)

Te6edf3close_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_closeTb4b4b4)
Te6edf3stop_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_stopTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialog Tff7b72= Te6edf3dialog
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Te6edf3dialog_content
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffstop_button Tff7b72= Te6edf3stop_button
Te6edf3s_state Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state
Tff7b72if Te6edf3s_state Tff7b72> Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_PATH_REQUESTED Tff7b72and Te6edf3s_state Tff7b72<Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Te6edf3dsp Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffget_sync_progressTb4b4b4(Tb4b4b4)Tff7b72*T79c0ff100
Tff7b72elseTb4b4b4:
Te6edf3dsp Tff7b72= T79c0ff0

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.lxmf_sync_dialog_openTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8fftitle Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffLXMF Sync via Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_propagation_nodeTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_statusTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffvalue Tff7b72= Te6edf3dsp
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffidsTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_sync_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsijTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6fflxmf.lastsyncTa5d6ff"Tb4b4b4, Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetpersistentTb4b4b4(Ta5d6ff"Ta5d6fflxmf.syncretryingTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffrequest_lxmf_syncTb4b4b4(Te6edf3limitTff7b72=Te6edf3slTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3sijTb4b4b4, T79c0ff0.1Tb4b4b4)

Tff7b72def Td2a8ffnew_conversation_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffnew_conversation_requestTb4b4b4(Te6edf3senderTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.15Tb4b4b4)

Tff7b72def Td2a8ffnew_conversation_requestTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3cancel_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCancelTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3create_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCreateTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_acceptTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_acceptTb4b4b4)
Te6edf3dialog_content Tff7b72= Te6edf3NewConvTb4b4b4(Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffNew ConversationTa5d6ff"Tb4b4b4,
Tffa657typeTff7b72=Ta5d6ff"Ta5d6ffcustomTa5d6ff"Tb4b4b4,
Te6edf3content_clsTff7b72=Te6edf3dialog_contentTb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3create_buttonTb4b4b4, Te6edf3cancel_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffd_content Tff7b72= Te6edf3dialog_content
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3new_result Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3n_address Tff7b72= Te6edf3dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTb4b4b4[Ta5d6ff"Ta5d6ffn_address_fieldTa5d6ff"Tb4b4b4]Tff7b72.Td2a8fftext
Te6edf3n_name Tff7b72= Te6edf3dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTb4b4b4[Ta5d6ff"Ta5d6ffn_name_fieldTa5d6ff"Tb4b4b4]Tff7b72.Td2a8fftext
Te6edf3n_trusted Tff7b72= Te6edf3dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTb4b4b4[Ta5d6ff"Ta5d6ffn_trustedTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffactive
Te6edf3new_result Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffnew_conversationTb4b4b4(Te6edf3n_addressTb4b4b4, Te6edf3n_nameTb4b4b4, Te6edf3n_trustedTb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while creating conversation: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72if Te6edf3new_resultTb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTb4b4b4[Ta5d6ff"Ta5d6ffn_address_fieldTa5d6ff"Tb4b4b4]Tff7b72.Td2a8fferror Tff7b72= Tff7b72False
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversations_view Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffd_contentTff7b72.Td2a8ffidsTb4b4b4[Ta5d6ff"Ta5d6ffn_address_fieldTa5d6ff"Tb4b4b4]Tff7b72.Td2a8fferror Tff7b72= Tff7b72True
T8b949e# dialog.d_content.ids["n_error_field"].text = "Could not create conversation. Check your input."

Tff7b72def Td2a8ffdl_noTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffdl_dsTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Te6edf3create_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3cancel_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_noTb4b4b4)

Te6edf3dialogTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_dismissTff7b72=Te6edf3dl_dsTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while creating new conversation dialog: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

T8b949e### Information/version screen
T8b949e######################################
Tff7b72def Td2a8ffinformation_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffinformation_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffinformation_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffinformation_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffinformation_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffinformation_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffinformation_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffinformation_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_information_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffinformation_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffinformation_screenTb4b4b4)

Tff7b72def Td2a8fflink_execTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffljTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3webbrowserTff7b72.Td2a8ffopenTb4b4b4(Ta5d6ff"Ta5d6ffhttps://unsigned.io/donateTa5d6ff"Tb4b4b4)
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3ljTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffinformation_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffinformation_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffinformation_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffinformation_logoTff7b72.Td2a8fficon Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffasset_dirTff7b72+Ta5d6ff"Ta5d6ff/rns_256.pngTa5d6ff"

Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffThis is Sideband vTa5d6ff"Tff7b72+Te6edf3__version__Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3__variant__Tff7b72+Ta5d6ff"Ta5d6ff, on RNS vTa5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ff__version__Tff7b72+Ta5d6ff"Ta5d6ff and LXMF vTa5d6ff"Tff7b72+Te6edf3LXMFTff7b72.Td2a8ff__version__Tff7b72+Ta5d6ff"Ta5d6ff.Tffea00\nTffea00\nTa5d6ffHumbly build using the following open components:Tffea00\nTffea00\nTa5d6ff - [b]Reticulum[/b] (MIT License)Tffea00\nTa5d6ff - [b]LXMF[/b] (MIT License)Tffea00\nTa5d6ff - [b]KivyMD[/b] (MIT License)Tffea00\nTa5d6ff - [b]Kivy[/b] (MIT License)Tffea00\nTa5d6ff - [b]Python[/b] (PSF License)Ta5d6ff"Tff7b72+Ta5d6ff"Tffea00\nTffea00\nTa5d6ffGo to [u][ref=link]https://unsigned.io/donate[/ref][/u] to support the project.Tffea00\nTffea00\nTa5d6ffThe Sideband app is Copyright (c) 2022 Mark Qvist / unsigned.ioTffea00\nTffea00\nTa5d6ffPermission is granted to freely share and distribute binary copies of Sideband vTa5d6ff"Tff7b72+Te6edf3__version__Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3__variant__Tff7b72+Ta5d6ff"Ta5d6ff, so long as no payment or compensation is charged for said distribution or sharing.Tffea00\nTffea00\nTa5d6ffIf you were charged or paid anything for this copy of Sideband, please report it to [b]license@unsigned.io[/b].Tffea00\nTffea00\nTa5d6ffTHIS IS EXPERIMENTAL SOFTWARE - SIDEBAND COMES WITH ABSOLUTELY NO WARRANTY - USE AT YOUR OWN RISK AND RESPONSIBILITYTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffinformation_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffinformation_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info
Tff7b72selfTff7b72.Td2a8ffinformation_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffinformation_infoTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_ref_pressTff7b72=Te6edf3link_execTb4b4b4)

Tff7b72def Td2a8ffinformation_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffinformation_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffclose_information_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)


T8b949e### Settings screen
T8b949e######################################
Tff7b72def Td2a8ffsettings_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffactive_propagation_node Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8fftext Tff7b72= Te6edf3RNSTff7b72.Td2a8ffhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffactive_propagation_nodeTb4b4b4, Te6edf3delimitTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffsettings_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffsettings_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsettings_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffinterval_to_slider_valTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3intervalTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3mseg Tff7b72= T79c0ff72Tb4b4b4; Te6edf3hseg Tff7b72= T79c0ff84Tb4b4b4; Te6edf3sv Tff7b72= T79c0ff0
Te6edf3mm Tff7b72= Te6edf3msegTff7b72*T79c0ff5Tff7b72*T79c0ff60Tb4b4b4; Te6edf3hm Tff7b72= Te6edf3hsegTff7b72*T79c0ff60Tff7b72*T79c0ff30Tff7b72+Te6edf3mm

Tff7b72if Te6edf3interval Tff7b72<Tff7b72= Te6edf3mmTb4b4b4:
Te6edf3sv Tff7b72= Te6edf3intervalTff7b72/T79c0ff60Tff7b72/T79c0ff5
Tff7b72elif Te6edf3interval Tff7b72> Te6edf3mm Tff7b72and Te6edf3interval Tff7b72<Tff7b72= Te6edf3hmTb4b4b4:
Te6edf3half_hours Tff7b72= Te6edf3intervalTff7b72/Tb4b4b4(T79c0ff60Tff7b72*T79c0ff30Tb4b4b4)Tff7b72-Tb4b4b4(Te6edf3mmTff7b72/Tb4b4b4(T79c0ff60Tff7b72*T79c0ff30Tb4b4b4)Tb4b4b4)
Te6edf3sv Tff7b72= Te6edf3msegTff7b72+Te6edf3half_hours
Tff7b72elseTb4b4b4:
Te6edf3days Tff7b72= Tb4b4b4(Te6edf3intervalTff7b72/T79c0ff86400Tb4b4b4)Tff7b72-Tb4b4b4(Tb4b4b4(Te6edf3hsegTff7b72*T79c0ff60Tff7b72*T79c0ff30Tb4b4b4)Tff7b72/T79c0ff84600Tb4b4b4)Tff7b72-Tb4b4b4(Te6edf3mmTff7b72/T79c0ff86400Tb4b4b4)
Te6edf3sv Tff7b72= T79c0ff1Tff7b72+Te6edf3msegTff7b72+Te6edf3hsegTff7b72+Te6edf3days
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72return T79c0ff43200

Tff7b72return Te6edf3sv

Tff7b72def Td2a8ffbind_clipboard_actionsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3idsTb4b4b4, Te6edf3forceTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3force Tff7b72or Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3BIND_CLASSES Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffkivymd.uix.textfield.textfield.MDTextFieldTa5d6ff"Tb4b4b4,Tb4b4b4]
Tff7b72for Te6edf3e Tff7b72in Te6edf3idsTb4b4b4:
Te6edf3te Tff7b72= Te6edf3idsTb4b4b4[Te6edf3eTb4b4b4]
Te6edf3ts Tff7b72= Tffa657strTb4b4b4(Te6edf3teTb4b4b4)Tff7b72.Td2a8ffsplitTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tb4b4b4)Tb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffreplaceTb4b4b4(Ta5d6ff"Ta5d6ff<Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72if Te6edf3ts Tff7b72in Te6edf3BIND_CLASSES Tff7b72and Tff7b72not Tffa657hasattrTb4b4b4(Te6edf3eTb4b4b4, Ta5d6ff"Ta5d6ffno_clipboardTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffBinding clipboard action to Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4)
Te6edf3teTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_double_tapTff7b72=Tff7b72selfTff7b72.Td2a8ffui_clipboard_actionTb4b4b4)

Tff7b72def Td2a8ffsettings_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffsettings_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffsettings_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_settings_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsettings_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffbind_clipboard_actionsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect

Te6edf3info1_text Tff7b72= Ta5d6ff"Tffea00\nTa5d6ffYou can set your [b]Display Name[/b] to a custom value, or leave it as the default unspecified value. Ta5d6ff"
Te6edf3info1_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffThis name will be included in any announces you send, and will be visible to others on the network. Ta5d6ff"
Te6edf3info1_text Tff7b72+Tff7b72= Ta5d6ff"Tffea00\nTffea00\nTa5d6ffYou can manually specify which [b]Propagation Node[/b] to use, but if none is specified, Sideband will Ta5d6ff"
Te6edf3info1_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffautomatically select one nearby.Ta5d6ff"
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3info1_text Tff7b72+Tff7b72= Ta5d6ff"Tffea00\nTffea00\nTa5d6ffDouble-tap any field to copy its value, and double-tap an empty field to paste into it.Ta5d6ff"

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_info1Tff7b72.Td2a8fftext Tff7b72= Te6edf3info1_text


Tff7b72def Td2a8ffsave_disp_nameTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3in_name Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_display_nameTff7b72.Td2a8fftext
Tff7b72if Te6edf3in_name Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3new_name Tff7b72= Ta5d6ff"Ta5d6ffAnonymous PeerTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3new_name Tff7b72= Te6edf3in_name

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdisplay_nameTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3new_name
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_prop_addrTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3in_addr Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8fftext

Te6edf3new_addr Tff7b72= Tff7b72None
Tff7b72if Te6edf3in_addr Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3new_addr Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72if Tffa657lenTb4b4b4(Te6edf3in_addrTb4b4b4) Tff7b72!= Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffTRUNCATED_HASHLENGTHTff7b72/Tff7b72/T79c0ff8Tff7b72*T79c0ff2Tb4b4b4:
Te6edf3new_addr Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3new_addr Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3in_addrTb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3new_addr Tff7b72= Tff7b72None

Tff7b72if Te6edf3new_addr Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8fferror Tff7b72= Tff7b72False


Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_propagation_nodeTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3new_addr
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffset_active_propagation_nodeTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_propagation_nodeTa5d6ff"Tb4b4b4]Tb4b4b4)

Tff7b72def Td2a8ffsave_dark_uiTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdark_uiTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_dark_uiTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_ui_themeTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_eink_modeTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffeink_modeTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_eink_modeTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_ui_themeTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_display_style_in_contact_listTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdisplay_style_in_contact_listTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffdisplay_style_in_contact_listTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.viewupdate.conversationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffsave_advanced_statsTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffadvanced_statsTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_advanced_statisticsTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_notifications_onTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffnotifications_onTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_notifications_onTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_start_announceTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffstart_announceTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_start_announceTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_lxmf_delivery_by_defaultTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffpropagation_by_defaultTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_delivery_by_defaultTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_lxmf_try_propagation_on_failTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_try_propagation_on_failTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_try_propagation_on_failTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_lxmf_ignore_unknownTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_ignore_unknownTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_ignore_unknownTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_lxmf_sync_limitTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_limitTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_limitTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_debugTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_debugTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ff_reticulum_log_debugTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4]Tb4b4b4)

Tff7b72def Td2a8ffsave_print_commandTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3in_cmd Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_print_commandTff7b72.Td2a8fftext
Tff7b72if Te6edf3in_cmd Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3new_cmd Tff7b72= Ta5d6ff"Ta5d6fflpTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3new_cmd Tff7b72= Te6edf3in_cmd

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffprint_commandTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3new_cmdTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_print_commandTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffprint_commandTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_lxmf_periodic_syncTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4, Te6edf3saveTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_periodic_syncTff7b72.Td2a8ffactiveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8fflxmf_syncslider_containerTb4b4b4, Tff7b72FalseTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8fflxmf_syncslider_containerTb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72if Te6edf3saveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_periodic_syncTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_periodic_syncTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsync_interval_changeTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4, Te6edf3saveTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
Te6edf3slider_val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_intervalTff7b72.Td2a8ffvalueTb4b4b4)
Te6edf3mseg Tff7b72= T79c0ff72Tb4b4b4; Te6edf3hseg Tff7b72= T79c0ff84
Tff7b72if Te6edf3slider_val Tff7b72<Tff7b72= Te6edf3msegTb4b4b4:
Te6edf3interval Tff7b72= Te6edf3slider_valTff7b72*T79c0ff5Tff7b72*T79c0ff60
Tff7b72elif Te6edf3slider_val Tff7b72> Te6edf3mseg Tff7b72and Te6edf3slider_val Tff7b72<Tff7b72= Te6edf3msegTff7b72+Te6edf3hsegTb4b4b4:
Te6edf3h Tff7b72= Tb4b4b4(Te6edf3slider_valTff7b72-Te6edf3msegTb4b4b4)Tff7b72/T79c0ff2Tb4b4b4; Te6edf3mm Tff7b72= Te6edf3msegTff7b72*T79c0ff5Tff7b72*T79c0ff60
Te6edf3interval Tff7b72= Te6edf3hTff7b72*T79c0ff60Tff7b72*T79c0ff60Tff7b72+Te6edf3mm
Tff7b72elseTb4b4b4:
Te6edf3d Tff7b72= Te6edf3slider_valTff7b72-Te6edf3hsegTff7b72-Te6edf3mseg
Te6edf3hm Tff7b72= Tb4b4b4(Te6edf3hsegTff7b72/T79c0ff2Tb4b4b4)Tff7b72*T79c0ff60Tff7b72*T79c0ff60Tb4b4b4; Te6edf3mm Tff7b72= Te6edf3msegTff7b72*T79c0ff5Tff7b72*T79c0ff60
Te6edf3interval Tff7b72= Te6edf3dTff7b72*T79c0ff86400Tff7b72+Te6edf3hmTff7b72+Te6edf3mm

Te6edf3interval_text Tff7b72= Te6edf3RNSTff7b72.Td2a8ffprettytimeTb4b4b4(Te6edf3intervalTb4b4b4)
Te6edf3pre Tff7b72= Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_periodicTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_periodicTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ffAuto sync every Ta5d6ff"Tff7b72+Te6edf3interval_text
Tff7b72if Te6edf3saveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_intervalTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3interval
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_addressTff7b72.Td2a8fftext Tff7b72= Te6edf3RNSTff7b72.Td2a8ffhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhashTb4b4b4, Te6edf3delimitTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_identity_hashTff7b72.Td2a8fftext Tff7b72= Te6edf3RNSTff7b72.Td2a8ffhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffidentityTff7b72.Td2a8ffhashTb4b4b4, Te6edf3delimitTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_display_nameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdisplay_nameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_display_nameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3save_disp_nameTb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72pass
T8b949e# self.widget_hide(self.settings_screen.ids.settings_print_command, True)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_print_commandTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffprint_commandTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_print_commandTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3save_print_commandTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_propagation_nodeTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3prop_node_addr Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3prop_node_addr Tff7b72= Te6edf3RNSTff7b72.Td2a8ffhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_propagation_nodeTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3delimitTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8fftext Tff7b72= Te6edf3prop_node_addr
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_propagation_node_addressTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3save_prop_addrTb4b4b4)

Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4) Tff7b72or Te6edf3android_api_version Tff7b72>Tff7b72= T79c0ff26Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_notifications_onTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffnotifications_onTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_notifications_onTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_notifications_onTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_notifications_onTff7b72.Td2a8ffactive Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_notifications_onTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_dark_uiTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdark_uiTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_dark_uiTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_dark_uiTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_eink_modeTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffeink_modeTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_eink_modeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_eink_modeTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffdisplay_style_in_contact_listTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdisplay_style_in_contact_listTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffdisplay_style_in_contact_listTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_display_style_in_contact_listTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_advanced_statisticsTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffadvanced_statsTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_advanced_statisticsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_advanced_statsTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_start_announceTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffstart_announceTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_start_announceTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_start_announceTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_delivery_by_defaultTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffpropagation_by_defaultTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_delivery_by_defaultTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_lxmf_delivery_by_defaultTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_try_propagation_on_failTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_try_propagation_on_failTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_try_propagation_on_failTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_lxmf_try_propagation_on_failTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_ignore_unknownTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_ignore_unknownTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_ignore_unknownTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_lxmf_ignore_unknownTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_periodic_syncTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_periodic_syncTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_periodic_syncTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_lxmf_periodic_syncTb4b4b4)
Te6edf3save_lxmf_periodic_syncTb4b4b4(Te6edf3saveTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72def Td2a8ffsync_interval_change_cbTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3sync_interval_changeTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4, Te6edf3eventTff7b72=Te6edf3eventTb4b4b4, Te6edf3saveTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_intervalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3valueTff7b72=Te6edf3sync_interval_change_cbTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_intervalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_touch_upTff7b72=Te6edf3sync_interval_changeTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_intervalTff7b72.Td2a8ffvalue Tff7b72= Tff7b72selfTff7b72.Td2a8ffinterval_to_slider_valTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_intervalTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3sync_interval_changeTb4b4b4(Te6edf3saveTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_limitTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72None Tff7b72or Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fflxmf_sync_limitTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72FalseTb4b4b4:
Te6edf3sync_limit Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Te6edf3sync_limit Tff7b72= Tff7b72True

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_limitTff7b72.Td2a8ffactive Tff7b72= Te6edf3sync_limit
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_lxmf_sync_limitTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_lxmf_sync_limitTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_debugTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsettings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffsettings_debugTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_debugTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsettings_ready Tff7b72= Tff7b72True

Tff7b72def Td2a8ffclose_settings_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)


T8b949e### Connectivity screen
T8b949e######################################
Tff7b72def Td2a8ffconnectivity_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_initTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffconnectivity_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffconnectivity_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffconnectivity_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffconnectivity_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffconnectivity_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_connectivity_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffbind_clipboard_actionsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72def Td2a8ffcon_hide_settingsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_localTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_groupidTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_netnameTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_passphraseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_tcpTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_hostTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_portTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_netnameTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_passphraseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_i2pTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_b32Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_netnameTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_passphraseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_netnameTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_passphraseTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_fieldsTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_transport_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_enable_transportTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_fieldsTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_shared_accessTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_shared_access_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_shared_access_fieldsTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_transport_labelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_enable_transportTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_transport_infoTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_transport_fieldsTb4b4b4)

Tff7b72def Td2a8ffcon_collapse_localTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_local_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_tcpTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_tcp_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_i2pTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_i2p_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_bluetoothTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_bluetooth_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_rnodeTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_rnode_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_modemTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_modem_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_serialTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_serial_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffcon_collapse_transportTb4b4b4(Te6edf3collapseTff7b72=Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e# self.widget_hide(self.root.ids.connectivity_transport_fields, collapse)
Tff7b72pass
Tff7b72def Td2a8ffsave_connectivityTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_transportTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_enable_transportTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_localTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_localTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_local_groupidTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_groupidTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_local_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_netnameTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_local_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_passphraseTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcpTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_tcpTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_hostTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_hostTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_portTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_portTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_netnameTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_passphraseTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2pTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_i2pTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2p_b32Ta5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_b32Tff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2p_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_netnameTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2p_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_passphraseTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnodeTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_netnameTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_passphraseTff7b72.Td2a8fftext

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_serialTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_serial_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifac_netnameTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_serial_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifac_passphraseTff7b72.Td2a8fftext

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_modemTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_modem_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifac_netnameTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_modem_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifac_passphraseTff7b72.Td2a8fftext

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_localTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifmodeTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_tcpTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifmodeTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_i2pTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifmodeTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_rnodeTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifmodeTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_modemTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifmodeTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_serialTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifmodeTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)

Te6edf3con_collapse_localTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_localTff7b72.Td2a8ffactiveTb4b4b4)
Te6edf3con_collapse_tcpTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_tcpTff7b72.Td2a8ffactiveTb4b4b4)
Te6edf3con_collapse_i2pTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_i2pTff7b72.Td2a8ffactiveTb4b4b4)
Te6edf3con_collapse_rnodeTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffactiveTb4b4b4)
Te6edf3con_collapse_modemTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffactiveTb4b4b4)
Te6edf3con_collapse_serialTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffactiveTb4b4b4)
Te6edf3con_collapse_transportTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_transportTa5d6ff"Tb4b4b4]Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3sender Tff7b72== Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_enable_transportTb4b4b4:
Tff7b72if Te6edf3senderTff7b72.Td2a8ffactiveTb4b4b4:
Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffUnderstoodTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffWarning!Ta5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYou have enabled [i]Reticulum Transport[/i] for this device.Tffea00\nTffea00\nTa5d6ffFor normal operation, and for most users, this is [b]not[/b] necessary, and might even degrade your network performance.Tffea00\nTffea00\nTa5d6ffWhen Transport is enabled, your device will route traffic between all connected interfaces and for all reachable devices on the network.Tffea00\nTffea00\nTa5d6ffThis should only be done if you intend to keep your device in a fixed position and for it to remain available continously.Tffea00\nTffea00\nTa5d6ffIf this is not the case, or you donTa5d6ff'Ta5d6fft understand any of this, turn off Transport.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff0.65Tb4b4b4)

Tff7b72def Td2a8ffserial_connectivity_saveTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3senderTff7b72.Td2a8ffactiveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffunbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffunbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffunbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffactive Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffactive Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffactive Tff7b72= Tff7b72False
Te6edf3senderTff7b72.Td2a8ffactive Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Te6edf3save_connectivityTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3eventTb4b4b4)

Tff7b72def Td2a8fffocus_saveTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3save_connectivityTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3eventTb4b4b4)

Tff7b72def Td2a8ffifmode_validateTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3all_valid Tff7b72= Tff7b72True
Te6edf3iftypes Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6fflocalTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fftcpTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffi2pTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrnodeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmodemTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffserialTa5d6ff"Tb4b4b4]
Tff7b72for Te6edf3iftype Tff7b72in Te6edf3iftypesTb4b4b4:
Te6edf3element Tff7b72= Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTb4b4b4[Ta5d6ff"Ta5d6ffconnectivity_Ta5d6ff"Tff7b72+Te6edf3iftypeTff7b72+Ta5d6ff"Ta5d6ff_ifmodeTa5d6ff"Tb4b4b4]
Te6edf3modes Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6fffullTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffgatewayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaccess pointTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffroamingTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffboundaryTa5d6ff"Tb4b4b4]
Te6edf3value Tff7b72= Te6edf3elementTff7b72.Td2a8fftextTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3value Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fffTa5d6ff"Tb4b4b4] Tff7b72or Te6edf3valueTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6fffuTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3value Tff7b72= Ta5d6ff"Ta5d6fffullTa5d6ff"
Tff7b72elif Te6edf3value Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffgTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffgwTa5d6ff"Tb4b4b4] Tff7b72or Te6edf3valueTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ffgaTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3value Tff7b72= Ta5d6ff"Ta5d6ffgatewayTa5d6ff"
Tff7b72elif Te6edf3value Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffapTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffa pTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaccesspointTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaccess pointTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffacTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaccTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffacceTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaccesTa5d6ff"Tb4b4b4] Tff7b72or Te6edf3valueTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ffaccessTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3value Tff7b72= Ta5d6ff"Ta5d6ffaccess pointTa5d6ff"
Tff7b72elif Te6edf3value Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffrTa5d6ff"Tb4b4b4] Tff7b72or Te6edf3valueTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ffroTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3value Tff7b72= Ta5d6ff"Ta5d6ffroamingTa5d6ff"
Tff7b72elif Te6edf3value Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffbTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffedgeTa5d6ff"Tb4b4b4] Tff7b72or Te6edf3valueTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ffboTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3value Tff7b72= Ta5d6ff"Ta5d6ffboundaryTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3value Tff7b72= Ta5d6ff"Ta5d6fffullTa5d6ff"

Tff7b72if Te6edf3value Tff7b72in Te6edf3modesTb4b4b4:
Te6edf3elementTff7b72.Td2a8fftext Tff7b72= Te6edf3valueTff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)
Te6edf3elementTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Te6edf3elementTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3all_valid Tff7b72= Tff7b72False

Tff7b72if Te6edf3all_validTb4b4b4:
Te6edf3save_connectivityTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3eventTb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffservice.is_controlling_connectivityTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband is connected via a shared Reticulum instance running on this system.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo configure connectivity, edit the relevant configuration file for the instance.Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info
Te6edf3con_hide_settingsTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffBy default, Sideband will try to discover and connect to any available Reticulum networks via active WiFi and/or Ethernet interfaces. If any Reticulum Transport Instances are found, Sideband will use these to connect to wider Reticulum networks. You can disable this behaviour if you donTa5d6ff'Ta5d6fft want it.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffYou can also connect to a network via a remote or local Reticulum instance using TCP or I2P. [b]Please Note![/b] Connecting via I2P requires that you already have I2P running on your device, and that the SAM API is enabled.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffFor changes to connectivity to take effect, you must shut down and restart Sideband.Tffea00\nTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_localTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_localTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_localTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_localTff7b72.Td2a8ffactiveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_groupidTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_local_groupidTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_local_ifac_netnameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_local_ifac_passphraseTa5d6ff"Tb4b4b4]

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_tcpTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcpTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_tcpTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_tcpTff7b72.Td2a8ffactiveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_hostTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_hostTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_portTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_portTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_ifac_netnameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_tcp_ifac_passphraseTa5d6ff"Tb4b4b4]

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_i2pTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2pTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_i2pTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_i2pTff7b72.Td2a8ffactiveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_b32Tff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2p_b32Ta5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2p_ifac_netnameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_i2p_ifac_passphraseTa5d6ff"Tb4b4b4]

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnodeTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_rnodeTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffactiveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_netnameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_passphraseTa5d6ff"Tb4b4b4]

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_modemTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_modemTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffactiveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_modem_ifac_netnameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_modem_ifac_passphraseTa5d6ff"Tb4b4b4]

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_serialTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_serialTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffactiveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_serial_ifac_netnameTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_serial_ifac_passphraseTa5d6ff"Tb4b4b4]

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_enable_transportTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_transportTa5d6ff"Tb4b4b4]
Te6edf3con_collapse_transportTb4b4b4(Te6edf3collapseTff7b72=Tff7b72not Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_transportTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_enable_transportTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifmodeTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_localTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifmodeTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_tcpTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifmodeTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_i2pTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifmodeTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_rnodeTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifmodeTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_modemTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifmodeTff7b72.Td2a8fftext Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_ifmode_serialTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffcapitalizeTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_localTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_groupidTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_netnameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifac_passphraseTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_tcpTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_hostTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_portTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_netnameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifac_passphraseTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_i2pTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_b32Tff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_netnameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifac_passphraseTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_rnodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_netnameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_passphraseTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_modemTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifac_netnameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifac_passphraseTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_use_serialTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3serial_connectivity_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifac_netnameTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifac_passphraseTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_local_ifmodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3ifmode_validateTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_tcp_ifmodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3ifmode_validateTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_i2p_ifmodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3ifmode_validateTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifmodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3ifmode_validateTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_modem_ifmodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3ifmode_validateTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_serial_ifmodeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3ifmode_validateTb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffreticulumTff7b72.Td2a8ffis_connected_to_shared_instanceTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband is connected via a shared Reticulum instance running on this system.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo get connectivity status, use the [b]rnstatus[/b] utility.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo configure connectivity, edit the configuration file located at:Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Tffa657strTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffconfigpathTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband is currently running a standalone or master Reticulum instance on this system.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo get connectivity status, use the [b]rnstatus[/b] utility.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo configure connectivity, edit the configuration file located at:Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Tffa657strTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffconfigpathTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Te6edf3con_hide_settingsTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconnectivity_ready Tff7b72= Tff7b72True

Tff7b72def Td2a8ffclose_connectivity_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffrpc_copy_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3c_yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4)
Te6edf3c_no_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffNo, go backTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3c_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff[b]Caution![/b]Tffea00\nTffea00\nTa5d6ffA configuration line containing your Reticulum RPC key will be copied to the system clipboard.Tffea00\nTffea00\nTa5d6ffWhile the key can only be used by other programs running locally on this system, it is still recommended to take care in not exposing it to unwanted programs.Tffea00\nTffea00\nTa5d6ffAre you sure that you wish to proceed?Ta5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3c_no_buttonTb4b4b4, Te6edf3c_yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffc_dl_noTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3c_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffc_dl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3c_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffThe RPC configuration was copied to the system clipboard. Paste in into the [b][reticulum][/b] section of the relevant Reticulum configuration file to allow access to this instance.Ta5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)

Te6edf3rpc_string Tff7b72= Ta5d6ff"Ta5d6ffrpc_key = Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffhexrepTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffreticulumTff7b72.Td2a8ffrpc_keyTb4b4b4, Te6edf3delimitTff7b72=Tff7b72FalseTb4b4b4)
Te6edf3ClipboardTff7b72.Td2a8ffcopyTb4b4b4(Te6edf3rpc_stringTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Te6edf3c_yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3c_dl_yesTb4b4b4)
Te6edf3c_no_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3c_dl_noTb4b4b4)

Te6edf3c_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

T8b949e### Repository screen
T8b949e######################################
Tff7b72def Td2a8ffrepository_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrepository_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffrepository_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffrepository_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffrepository_link_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffreposository_url Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72def Td2a8ffljTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3webbrowserTff7b72.Td2a8ffopenTb4b4b4(Tff7b72selfTff7b72.Td2a8ffreposository_urlTb4b4b4)
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3ljTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffrepository_update_infoTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband includes a small repository of useful software and guides related to the Sideband and Reticulum ecosystem. You can start this repository to allow other people on your local network to download software and information directly from this device, without needing an Internet connection.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffIf you want to share the Sideband application itself via the repository server, you must first download it into the local repository, using the Tffea00\"Ta5d6ffUpdate ContentTffea00\"Ta5d6ff button below.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo make the repository available on your local network, simply start it below, and it will become browsable on a local IP address for anyone connected to the same WiFi or wired network.Tffea00\nTffea00\nTa5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffwebshare_server Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffgetIPTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3adrs Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787jnius Tff7b72import Te6edf3autoclass
Tff7b72import T7ee787ipaddress
Te6edf3mActivity Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonActivityTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmActivity
Te6edf3SystemProperties Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.os.SystemPropertiesTa5d6ff'Tb4b4b4)
Te6edf3Context Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.ContextTa5d6ff'Tb4b4b4)
Te6edf3connectivity_manager Tff7b72= Te6edf3mActivityTff7b72.Td2a8ffgetSystemServiceTb4b4b4(Te6edf3ContextTff7b72.Td2a8ffCONNECTIVITY_SERVICETb4b4b4)
Te6edf3ns Tff7b72= Te6edf3connectivity_managerTff7b72.Td2a8ffgetAllNetworksTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3ns Tff7b72== Tff7b72None Tff7b72and Tffa657lenTb4b4b4(Te6edf3nsTb4b4b4) Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72for Te6edf3n Tff7b72in Te6edf3nsTb4b4b4:
Te6edf3lps Tff7b72= Te6edf3connectivity_managerTff7b72.Td2a8ffgetLinkPropertiesTb4b4b4(Te6edf3nTb4b4b4)
Te6edf3las Tff7b72= Te6edf3lpsTff7b72.Td2a8ffgetLinkAddressesTb4b4b4(Tb4b4b4)
Tff7b72for Te6edf3la Tff7b72in Te6edf3lasTb4b4b4:
Te6edf3ina Tff7b72= Te6edf3laTff7b72.Td2a8ffgetAddressTb4b4b4(Tb4b4b4)
Te6edf3ha Tff7b72= Te6edf3inaTff7b72.Td2a8ffgetHostAddressTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3inaTff7b72.Td2a8ffisLinkLocalAddressTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3adrsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3haTb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while getting repository IP address: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72return Tff7b72None

Tff7b72return Te6edf3adrs

Te6edf3ips Tff7b72= Te6edf3getIPTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3ips Tff7b72== Tff7b72None Tff7b72or Tffa657lenTb4b4b4(Te6edf3ipsTb4b4b4) Tff7b72== T79c0ff0Tb4b4b4:
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffThe repository server is running, but the local device IP address could not be determined.Tffea00\nTffea00\nTa5d6ffYou can access the repository by pointing a browser to: http://DEVICE_IP:4444/Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffreposository_url Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Te6edf3ipstr Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72for Te6edf3ip Tff7b72in Te6edf3ipsTb4b4b4:
Te6edf3ipstr Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffhttp://Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3ipTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff:4444/Tffea00\nTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffreposository_url Tff7b72= Te6edf3ipstr

Te6edf3ms Tff7b72= Ta5d6ff"Ta5d6ff" Tff7b72if Tffa657lenTb4b4b4(Te6edf3ipsTb4b4b4) Tff7b72== T79c0ff1 Tff7b72else Ta5d6ff"Ta5d6ffesTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffThe repository server is running at the following addressTa5d6ff"Tff7b72+Te6edf3msTff7b72+Ta5d6ff"Ta5d6ff:Tffea00\nTa5d6ff [u][ref=link]Ta5d6ff"Tff7b72+Te6edf3ipstrTff7b72+Ta5d6ff"Ta5d6ff[/ref][u]Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_infoTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_ref_pressTff7b72=Tff7b72selfTff7b72.Td2a8ffrepository_link_actionTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_enable_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_disable_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False

Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_enable_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_disable_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True

Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Tffea00\nTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Tff7b72def Td2a8ffrepository_start_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffstart_webshareTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72selfTff7b72.Td2a8ffrepository_update_infoTb4b4b4, T79c0ff1.0Tb4b4b4)

Tff7b72def Td2a8ffrepository_stop_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffreposository_url Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffstop_webshareTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72selfTff7b72.Td2a8ffrepository_update_infoTb4b4b4, T79c0ff0.75Tb4b4b4)

Tff7b72def Td2a8ffrepository_download_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffupdate_jobTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72import T7ee787requests

T8b949e# Get release info
Te6edf3apk_version Tff7b72= Tff7b72None
Te6edf3apk_url Tff7b72= Tff7b72None
Te6edf3pkgname Tff7b72= Tff7b72None
Tff7b72tryTb4b4b4:
Te6edf3release_url Tff7b72= Ta5d6ff"Ta5d6ffhttps://api.github.com/repos/markqvist/sideband/releasesTa5d6ff"
Tff7b72with Te6edf3requestsTff7b72.Td2a8ffgetTb4b4b4(Te6edf3release_urlTb4b4b4) Tff7b72as Te6edf3responseTb4b4b4:
Te6edf3releases Tff7b72= Te6edf3responseTff7b72.Td2a8ffjsonTb4b4b4(Tb4b4b4)
Te6edf3release Tff7b72= Te6edf3releasesTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3assets Tff7b72= Te6edf3releaseTb4b4b4[Ta5d6ff"Ta5d6ffassetsTa5d6ff"Tb4b4b4]
Tff7b72for Te6edf3asset Tff7b72in Te6edf3assetsTb4b4b4:
Tff7b72if Te6edf3assetTb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4]Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffendswithTb4b4b4(Ta5d6ff"Ta5d6ff.apkTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3apk_url Tff7b72= Te6edf3assetTb4b4b4[Ta5d6ff"Ta5d6ffbrowser_download_urlTa5d6ff"Tb4b4b4]
Te6edf3pkgname Tff7b72= Te6edf3assetTb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4]
Te6edf3apk_version Tff7b72= Te6edf3releaseTb4b4b4[Ta5d6ff"Ta5d6fftag_nameTa5d6ff"Tb4b4b4]
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffFound version Tffd700{Te6edf3apk_versionTffd700}Ta5d6ff artefact Tffd700{Te6edf3pkgnameTffd700}Ta5d6ff at Tffd700{Te6edf3apk_urlTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffDownloading release info failed with the error:Tffea00\nTa5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)
Tff7b72return

Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ffDownloading: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3apk_urlTb4b4b4)
Tff7b72with Te6edf3requestsTff7b72.Td2a8ffgetTb4b4b4(Te6edf3apk_urlTb4b4b4, Te6edf3streamTff7b72=Tff7b72TrueTb4b4b4) Tff7b72as Te6edf3responseTb4b4b4:
Tff7b72with Tffa657openTb4b4b4(Ta5d6ff"Ta5d6ff./dl_tmpTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffwbTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3tmp_fileTb4b4b4:
Te6edf3cs Tff7b72= T79c0ff32Tff7b72*T79c0ff1024
Te6edf3tds Tff7b72= T79c0ff0
Tff7b72for Te6edf3chunk Tff7b72in Te6edf3responseTff7b72.Td2a8ffiter_contentTb4b4b4(Te6edf3chunk_sizeTff7b72=Te6edf3csTb4b4b4)Tb4b4b4:
Te6edf3tmp_fileTff7b72.Td2a8ffwriteTb4b4b4(Te6edf3chunkTb4b4b4)
Te6edf3tds Tff7b72+Tff7b72= Te6edf3cs
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ffDownloaded Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettysizeTb4b4b4(Te6edf3tdsTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff of Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3pkgnameTb4b4b4)

Te6edf3osTff7b72.Td2a8ffrenameTb4b4b4(Ta5d6ff"Ta5d6ff./dl_tmpTa5d6ff"Tb4b4b4, Ta5d6fffTa5d6ff"Ta5d6ff./share/pkg/Tffd700{Te6edf3pkgnameTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffAdded Tffd700{Te6edf3pkgnameTffd700}Ta5d6ff to the repository!Ta5d6ff"
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffDownloading contents failed with the error:Tffea00\nTa5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_updateTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ffStarting package download...Ta5d6ff"
Tff7b72def Td2a8ffstart_update_jobTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3update_jobTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3start_update_jobTb4b4b4, T79c0ff0.5Tb4b4b4)

Tff7b72def Td2a8ffrepository_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrepository_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffrepository_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrepository_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_repository_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffrepository_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffrepository_update_infoTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_enable_buttonTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_disable_buttonTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_download_buttonTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrepository_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffrepository_infoTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Tffea00\nTa5d6ffThe [b]Repository Webserver[/b] feature is currently only available on mobile devices.Ta5d6ff"

Tff7b72selfTff7b72.Td2a8ffrepository_ready Tff7b72= Tff7b72True

Tff7b72def Td2a8ffclose_repository_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

T8b949e### Hardware screen
T8b949e######################################
Tff7b72def Td2a8ffhardware_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffhardware_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffhardware_initTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffhardware_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffclose_sub_hardware_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_actionTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffhardware_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffhardware_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffhardware_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_hardware_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect

Tff7b72def Td2a8ffcon_hide_settingsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_buttonTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_buttonTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_buttonTb4b4b4)

Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetpersistentTb4b4b4(Ta5d6ff"Ta5d6ffservice.is_controlling_connectivityTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband is connected via a shared Reticulum instance running on this system.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo configure hardware parameters, edit the relevant configuration file for the instance.Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info
Te6edf3con_hide_settingsTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffWhen using external hardware for communicating, you may configure various parameters, such as channel settings, modulation schemes, interface speeds and access parameters. You can set up these parameters per device type, and Sideband will apply the configuration when opening a device of that type.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffHardware configurations can also be exported or imported as [i]config motes[/i], which are self-contained plaintext strings that are easy to share with others. When importing a config mote, Sideband will automatically set all relevant parameters as specified within it.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffFor changes to hardware parameters to take effect, you must shut down and restart Sideband.Tffea00\nTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Tff7b72elseTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffreticulumTff7b72.Td2a8ffis_connected_to_shared_instanceTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband is connected via a shared Reticulum instance running on this system.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo configure hardware parameters, edit the configuration file located at:Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Tffa657strTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffconfigpathTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffSideband is currently running a standalone or master Reticulum instance on this system.Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ffTo configure hardware parameters, edit the configuration file located at:Tffea00\nTffea00\nTa5d6ff"
Te6edf3info Tff7b72+Tff7b72= Tffa657strTb4b4b4(Te6edf3RNSTff7b72.Td2a8ffReticulumTff7b72.Td2a8ffconfigpathTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Te6edf3con_hide_settingsTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_ready Tff7b72= Tff7b72True

Tff7b72def Td2a8ffclose_hardware_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

T8b949e## RNode hardware screen
Tff7b72def Td2a8ffhardware_rnode_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffhardware_rnode_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffhardware_rnode_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffhardware_rnode_saveTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_frequencyTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tffa657floatTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fftextTb4b4b4)Tff7b72*T79c0ff1000000Tb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass

Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bandwidthTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tffa657floatTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fftextTb4b4b4)Tff7b72*T79c0ff1000Tb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass

Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_tx_powerTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fftextTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass

Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_spreading_factorTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fftextTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_coding_rateTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fftextTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_shortTa5d6ff"Tb4b4b4] Tff7b72= Tffa657floatTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_atl_shortTff7b72.Td2a8fftextTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_shortTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None

Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_longTa5d6ff"Tb4b4b4] Tff7b72= Tffa657floatTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_atl_longTff7b72.Td2a8fftextTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_longTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beaconintervalTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beaconintervalTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftextTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass

Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beacondataTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beacondataTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beacondataTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beacondataTff7b72.Td2a8fftext

Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_deviceTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bt_deviceTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bt_deviceTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_deviceTff7b72.Td2a8fftext

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffhardware_rnode_bt_on_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_pair_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_on_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_off_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72def Td2a8ffre_enableTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff2Tb4b4b4)
Tff7b72while Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffexecuting.bt_onTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_off_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_pair_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_on_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3re_enableTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.bt_onTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffhardware_rnode_bt_off_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_pair_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_on_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_off_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72def Td2a8ffre_enableTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff2Tb4b4b4)
Tff7b72while Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffexecuting.bt_offTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_off_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_pair_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_on_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3re_enableTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.bt_offTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffhardware_rnode_bt_pair_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_pair_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_on_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_off_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72def Td2a8ffre_enableTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff2Tb4b4b4)
Tff7b72while Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffexecuting.bt_pairTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_off_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_pair_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_on_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3re_enableTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffwants.bt_pairTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffhardware_rnode_bt_toggle_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3senderTff7b72.Td2a8ffactiveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bluetoothTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffrequest_bluetooth_permissionsTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bluetoothTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffhardware_rnode_framebuffer_toggle_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3senderTff7b72.Td2a8ffactiveTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_enable_framebufferTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_enable_framebufferTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffhardware_rnode_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffhardware_rnode_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffhardware_rnode_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_hardware_rnode_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72def Td2a8ffsave_connectivityTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_validateTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_saveTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8fffocus_saveTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3sender Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3save_connectivityTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_frequencyTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_freq Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_frequencyTa5d6ff"Tb4b4b4]Tff7b72/T79c0ff1000000.0Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_freq Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bandwidthTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_bw Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bandwidthTa5d6ff"Tb4b4b4]Tff7b72/T79c0ff1000.0Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_bw Tff7b72= Tffa657strTb4b4b4(T79c0ff62.5Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_tx_powerTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_p Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_tx_powerTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_p Tff7b72= Tffa657strTb4b4b4(T79c0ff0Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_spreading_factorTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_sf Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_spreading_factorTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_sf Tff7b72= Tffa657strTb4b4b4(T79c0ff8Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_coding_rateTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_cr Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_coding_rateTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_cr Tff7b72= Tffa657strTb4b4b4(T79c0ff6Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beaconintervalTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_bi Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beaconintervalTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_bi Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beacondataTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_bd Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beacondataTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_bd Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bt_deviceTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_btd Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bt_deviceTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_btd Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_shortTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_ats Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_shortTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_ats Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_longTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_atl Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_atl_longTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_atl Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bluetoothTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bluetoothTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_framebufferTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_enable_framebufferTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fftext Tff7b72= Te6edf3t_freq
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fftext Tff7b72= Te6edf3t_bw
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fftext Tff7b72= Te6edf3t_p
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fftext Tff7b72= Te6edf3t_sf
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fftext Tff7b72= Te6edf3t_cr
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftext Tff7b72= Te6edf3t_bi
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beacondataTff7b72.Td2a8fftext Tff7b72= Te6edf3t_bd
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_deviceTff7b72.Td2a8fftext Tff7b72= Te6edf3t_btd
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_atl_shortTff7b72.Td2a8fftext Tff7b72= Te6edf3t_ats
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_atl_longTff7b72.Td2a8fftext Tff7b72= Te6edf3t_atl
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beacondataTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bt_deviceTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beacondataTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_atl_shortTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_atl_longTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bluetoothTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Tff7b72selfTff7b72.Td2a8ffhardware_rnode_bt_toggle_actionTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_framebufferTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Tff7b72selfTff7b72.Td2a8ffhardware_rnode_framebuffer_toggle_actionTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_rnode_ready Tff7b72= Tff7b72True

Tff7b72def Td2a8ffhardware_rnode_validateTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3valid Tff7b72= Tff7b72True
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657floatTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid frequencyTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3valid_vals Tff7b72= Tb4b4b4[T79c0ff7.8Tb4b4b4, T79c0ff10.4Tb4b4b4, T79c0ff15.6Tb4b4b4, T79c0ff20.8Tb4b4b4, T79c0ff31.25Tb4b4b4, T79c0ff41.7Tb4b4b4, T79c0ff62.5Tb4b4b4, T79c0ff125Tb4b4b4, T79c0ff250Tb4b4b4, T79c0ff500Tb4b4b4]
Te6edf3val Tff7b72= Tffa657floatTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72in Te6edf3valid_valsTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid bandwidthTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72>Tff7b72= T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid TX powerTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Te6edf3val Tff7b72< T79c0ff7 Tff7b72or Te6edf3val Tff7b72> T79c0ff12Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid sfTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Te6edf3val Tff7b72< T79c0ff5 Tff7b72or Te6edf3val Tff7b72> T79c0ff8Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid crTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftext Tff7b72!= Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Te6edf3val Tff7b72< T79c0ff10Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid biTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72return Te6edf3valid

Tff7b72def Td2a8ffhardware_rnode_importTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3mote Tff7b72= Tff7b72None
Tff7b72tryTb4b4b4:
Te6edf3mote Tff7b72= Te6edf3ClipboardTff7b72.Td2a8ffpasteTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffImport FailedTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffCould not read data from your clipboard, please check your system permissions.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72tryTb4b4b4:
Te6edf3config Tff7b72= Te6edf3msgpackTff7b72.Td2a8ffunpackbTb4b4b4(Te6edf3base64Tff7b72.Td2a8ffb32decodeTb4b4b4(Te6edf3moteTb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_frequencyTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6fffTa5d6ff"Tb4b4b4]Tff7b72/T79c0ff1000000.0Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_bandwidthTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffbTa5d6ff"Tb4b4b4]Tff7b72/T79c0ff1000.0Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_txpowerTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_spreadingfactorTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_codingrateTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72if Ta5d6ff"Ta5d6ffnTa5d6ff" Tff7b72in Te6edf3config Tff7b72and Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3ifn Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3ifn Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Ta5d6ff"Ta5d6ffpTa5d6ff" Tff7b72in Te6edf3config Tff7b72and Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffpTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3ifp Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffpTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3ifp Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_netnameTff7b72.Td2a8fftext Tff7b72= Te6edf3ifn
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_netnameTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3ifn
Tff7b72selfTff7b72.Td2a8ffconnectivity_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffconnectivity_rnode_ifac_passphraseTff7b72.Td2a8fftext Tff7b72= Te6edf3ifp
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_passphraseTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3ifp

Tff7b72if Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffiTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3ti Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffiTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3ti Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beaconintervalTff7b72.Td2a8fftext Tff7b72= Te6edf3ti
Tff7b72if Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3td Tff7b72= Tffa657strTb4b4b4(Te6edf3configTb4b4b4[Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3td Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_rnode_beacondataTff7b72.Td2a8fftext Tff7b72= Te6edf3td

Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_rnode_validateTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_rnode_saveTb4b4b4(Tb4b4b4)
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffConfiguration ImportedTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffThe config mote was imported and saved as your active configuration.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid moteTa5d6ff"Tb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffImport FailedTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffThe read data did not contain a valid config mote. If any data was decoded, you may try to correct it by editing the relevant fields. The reported error was:Tffea00\nTffea00\nTa5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffhardware_rnode_exportTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3mote Tff7b72= Tff7b72None
Tff7b72tryTb4b4b4:
Te6edf3mote Tff7b72= Te6edf3base64Tff7b72.Td2a8ffb32encodeTb4b4b4(Te6edf3msgpackTff7b72.Td2a8ffpackbTb4b4b4(Tb4b4b4{
Ta5d6ff"Ta5d6fffTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_frequencyTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffbTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_bandwidthTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_tx_powerTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_spreading_factorTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_coding_rateTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffiTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beaconintervalTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_rnode_beacondataTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_netnameTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffpTa5d6ff"Tb4b4b4: Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffconnect_rnode_ifac_passphraseTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72pass

Tff7b72if Te6edf3mote Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3ClipboardTff7b72.Td2a8ffcopyTb4b4b4(Te6edf3moteTb4b4b4)
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffConfiguration ExportedTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffThe config mote was created and copied to your clipboard.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffExport FailedTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffThe config mote could not be created, please check your settings.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
T8b949e## Modem hardware screen
Tff7b72def Td2a8ffhardware_modem_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_modem_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffhardware_modem_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffhardware_modem_initTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffhardware_modem_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffhardware_modem_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffhardware_modem_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffhardware_modem_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_hardware_modem_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72def Td2a8ffsave_connectivityTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_modem_validateTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_saveTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8fffocus_saveTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3sender Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3save_connectivityTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_baudrateTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_b Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_baudrateTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_b Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_databitsTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_db Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_databitsTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_db Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_parityTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_p Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_parityTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_p Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_stopbitsTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_sb Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_stopbitsTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_sb Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_preambleTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_pa Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_preambleTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_pa Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_tailTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_t Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_tailTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_t Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_persistenceTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_ps Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_persistenceTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_ps Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_slottimeTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_st Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_slottimeTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_st Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beaconintervalTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_bi Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beaconintervalTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_bi Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beacondataTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_bd Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beacondataTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_bd Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8fftext Tff7b72= Te6edf3t_b
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8fftext Tff7b72= Te6edf3t_db
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8fftext Tff7b72= Te6edf3t_p
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8fftext Tff7b72= Te6edf3t_sb
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftext Tff7b72= Te6edf3t_bi
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beacondataTff7b72.Td2a8fftext Tff7b72= Te6edf3t_bd
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8fftext Tff7b72= Te6edf3t_pa
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8fftext Tff7b72= Te6edf3t_t
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8fftext Tff7b72= Te6edf3t_ps
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8fftext Tff7b72= Te6edf3t_st
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beacondataTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beacondataTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_modem_ready Tff7b72= Tff7b72True
Tff7b72def Td2a8ffhardware_modem_saveTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_baudrateTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_databitsTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_parityTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_stopbitsTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_preambleTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_tailTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_persistenceTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_slottimeTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8fftextTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beaconintervalTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beaconintervalTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftextTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beacondataTff7b72.Td2a8fftext Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beacondataTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_modem_beacondataTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beacondataTff7b72.Td2a8fftext

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffhardware_modem_validateTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3valid Tff7b72= Tff7b72True
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid baudrateTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_baudrateTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid databitsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_databitsTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid stopbitsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_stopbitsTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3val Tff7b72>Tff7b72= T79c0ff0 Tff7b72and Te6edf3val Tff7b72<Tff7b72= T79c0ff1000Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid preambleTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_preambleTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3val Tff7b72> T79c0ff0 Tff7b72and Te6edf3val Tff7b72<Tff7b72= T79c0ff500Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid tailTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_tailTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3val Tff7b72> T79c0ff0 Tff7b72and Te6edf3val Tff7b72<Tff7b72= T79c0ff500Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid slottimeTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_slottimeTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3val Tff7b72> T79c0ff0 Tff7b72and Te6edf3val Tff7b72<Tff7b72= T79c0ff255Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid persistenceTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_persistenceTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8fftext
Te6edf3nval Tff7b72= Te6edf3valTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3nval Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffevTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffeveTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffevenTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3val Tff7b72= Ta5d6ff"Ta5d6ffevenTa5d6ff"
Tff7b72if Te6edf3nval Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffoTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffodTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffoddTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3val Tff7b72= Ta5d6ff"Ta5d6ffoddTa5d6ff"
Tff7b72if Te6edf3nval Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnonTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoneTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnotTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnullTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffoffTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3val Tff7b72= Ta5d6ff"Ta5d6ffnoneTa5d6ff"
Tff7b72if Tff7b72not Te6edf3val Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffevenTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffoddTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoneTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid parityTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_parityTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False

Tff7b72tryTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftext Tff7b72!= Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Te6edf3val Tff7b72< T79c0ff10Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid biTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_modem_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_modem_beaconintervalTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3valid Tff7b72= Tff7b72False

Tff7b72return Te6edf3valid
T8b949e## Serial hardware screen
Tff7b72def Td2a8ffhardware_serial_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_serial_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffhardware_serial_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffhardware_serial_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffhardware_serial_initTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffhardware_serial_readyTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffhardware_serial_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_hardware_serial_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72def Td2a8ffsave_connectivityTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffhardware_serial_validateTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_saveTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8fffocus_saveTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3sender Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3senderTff7b72.Td2a8fffocusTb4b4b4:
Te6edf3save_connectivityTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_baudrateTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_b Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_baudrateTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_b Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_databitsTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_db Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_databitsTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_db Tff7b72= Ta5d6ff"Ta5d6ff"

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_parityTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_p Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_parityTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_p Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_stopbitsTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3t_sb Tff7b72= Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_stopbitsTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3t_sb Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8fftext Tff7b72= Te6edf3t_b
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8fftext Tff7b72= Te6edf3t_db
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8fftext Tff7b72= Te6edf3t_p
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8fftext Tff7b72= Te6edf3t_sb
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3focusTff7b72=Te6edf3focus_saveTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_text_validateTff7b72=Te6edf3save_connectivityTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffhardware_serial_ready Tff7b72= Tff7b72True

Tff7b72def Td2a8ffhardware_serial_validateTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3valid Tff7b72= Tff7b72True
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid baudrateTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid databitsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72if Tff7b72not Te6edf3val Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid stopbitsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Te6edf3val Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8fftext
Te6edf3nval Tff7b72= Te6edf3valTff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3nval Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffevTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffeveTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffevenTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3val Tff7b72= Ta5d6ff"Ta5d6ffevenTa5d6ff"
Tff7b72if Te6edf3nval Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffoTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffodTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffoddTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3val Tff7b72= Ta5d6ff"Ta5d6ffoddTa5d6ff"
Tff7b72if Te6edf3nval Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffnTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnonTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoneTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnotTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnullTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffoffTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3val Tff7b72= Ta5d6ff"Ta5d6ffnoneTa5d6ff"
Tff7b72if Tff7b72not Te6edf3val Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffevenTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffoddTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffnoneTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffInvalid parityTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8fferror Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3valTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8fferror Tff7b72= Tff7b72True
Te6edf3valid Tff7b72= Tff7b72False

Tff7b72return Te6edf3valid

Tff7b72def Td2a8ffhardware_serial_saveTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_baudrateTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_baudrateTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_databitsTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_databitsTff7b72.Td2a8fftextTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_parityTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_parityTff7b72.Td2a8fftext
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffhw_serial_stopbitsTa5d6ff"Tb4b4b4] Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ffhardware_serial_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffhardware_serial_stopbitsTff7b72.Td2a8fftextTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

T8b949e### Announce Stream screen
T8b949e######################################
Tff7b72def Td2a8ffinit_announces_viewTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffannounces_viewTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_view Tff7b72= Te6edf3AnnouncesTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.new_announcesTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72for Te6edf3child Tff7b72in Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffannounces_scrollviewTff7b72.Td2a8ffchildrenTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffannounces_scrollviewTff7b72.Td2a8ffremove_widgetTb4b4b4(Te6edf3childTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffannounces_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffidsTff7b72.Td2a8ffannounces_scrollviewTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffget_widgetTb4b4b4(Tb4b4b4)Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffannounces_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffannounces_viewTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffinit_announces_viewTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffannounces_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.new_announcesTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffannounces_viewTff7b72.Td2a8ffupdateTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffannounces_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffclose_announces_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffannounce_filter_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72pass

Tff7b72def Td2a8ffscreen_transition_completeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffannounces_screenTa5d6ff"Tb4b4b4:
Tff7b72pass
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72== Ta5d6ff"Ta5d6ffconversations_screenTa5d6ff"Tb4b4b4:
Tff7b72pass

T8b949e### Keys screen
T8b949e######################################
Tff7b72def Td2a8ffkeys_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffkeys_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffkeys_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffkeys_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffkeys_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffkeys_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffkeys_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffkeys_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_keys_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffkeys_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffkeys_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffbind_clipboard_actionsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffkeys_screenTff7b72.Td2a8ffidsTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffkeys_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffkeys_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffYour primary encryption keys are stored in a Reticulum Identity within the Sideband app. If you want to backup this Identity for later use on this or another device, you can export it as a plain text blob, with the key data encoded in Base32 format. This will allow you to restore your address in Sideband or other LXMF clients at a later point.Tffea00\nTffea00\nTa5d6ff[b]Warning![/b] Anyone that gets access to the key data will be able to control your LXMF address, impersonate you, and read your messages. In is [b]extremely important[/b] that you keep the Identity data secure if you export it.Tffea00\nTffea00\nTa5d6ffBefore displaying or exporting your Identity data, make sure that no machine or person in your vicinity is able to see, copy or record your device screen or similar.Ta5d6ff"

Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidget_hideTb4b4b4(Tff7b72selfTff7b72.Td2a8ffkeys_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffkeys_shareTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffkeys_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffkeys_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Tff7b72def Td2a8ffkeys_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Ta5d6ff"Ta5d6ffleftTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffkeys_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffclose_keys_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffidentity_display_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYour Identity key, in base32 format is as follows:Tffea00\nTffea00\nTa5d6ff[b]Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3base64Tff7b72.Td2a8ffb32encodeTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffidentityTff7b72.Td2a8ffget_private_keyTb4b4b4(Tb4b4b4)Tb4b4b4)Tff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff[/b]Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffidentity_copy_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3c_yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4)
Te6edf3c_no_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffNo, go backTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3c_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff[b]Caution![/b]Tffea00\nTffea00\nTa5d6ffYour Identity key will be copied to the system clipboard. Take extreme care that no untrusted app steals your key by reading the clipboard data. Clear the system clipboard immediately after pasting your key where you need it.Tffea00\nTffea00\nTa5d6ffAre you sure that you wish to proceed?Ta5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3c_no_buttonTb4b4b4, Te6edf3c_yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffc_dl_noTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3c_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffc_dl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3c_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYour Identity key was copied to the system clipboardTa5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)

Te6edf3ClipboardTff7b72.Td2a8ffcopyTb4b4b4(Tffa657strTb4b4b4(Te6edf3base64Tff7b72.Td2a8ffb32encodeTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffidentityTff7b72.Td2a8ffget_private_keyTb4b4b4(Tb4b4b4)Tb4b4b4)Tff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Te6edf3c_yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3c_dl_yesTb4b4b4)
Te6edf3c_no_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3c_dl_noTb4b4b4)

Te6edf3c_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffidentity_share_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffshare_textTb4b4b4(Tffa657strTb4b4b4(Te6edf3base64Tff7b72.Td2a8ffb32encodeTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffidentityTff7b72.Td2a8ffget_private_keyTb4b4b4(Tb4b4b4)Tb4b4b4)Tff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4)

Tff7b72def Td2a8ffidentity_restore_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3c_yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4)
Te6edf3c_no_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffNo, go backTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3c_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff[b]Caution![/b]Tffea00\nTffea00\nTa5d6ffYou are about to import a new Identity key into Sideband. The currently active key will be irreversibly destroyed, and you will loose your LXMF address if you have not already backed up your current Identity key.Tffea00\nTffea00\nTa5d6ffAre you sure that you wish to import the key?Ta5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3c_no_buttonTb4b4b4, Te6edf3c_yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffc_dl_noTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3c_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffc_dl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3c_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3b32_text Tff7b72= Tff7b72selfTff7b72.Td2a8ffkeys_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffkey_restore_textTff7b72.Td2a8fftext
Tff7b72tryTb4b4b4:
Te6edf3key_bytes Tff7b72= Te6edf3base64Tff7b72.Td2a8ffb32decodeTb4b4b4(Te6edf3b32_textTb4b4b4)
Te6edf3new_id Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8fffrom_bytesTb4b4b4(Te6edf3key_bytesTb4b4b4)

Tff7b72if Te6edf3new_id Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3new_idTff7b72.Td2a8ffto_fileTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffidentity_pathTb4b4b4)

Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff[b]The provided Identity key data was imported[/b]Tffea00\nTffea00\nTa5d6ffThe app will now exit. Please restart Sideband to use the new Identity.Ta5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffquit_actionTb4b4b4(Te6edf3senderTff7b72=Tff7b72selfTb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff[b]The provided Identity key data was not valid[/b]Tffea00\nTffea00\nTa5d6ffThe error reported by Reticulum was:Tffea00\nTffea00\nTa5d6ff[i]Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff[/i]Tffea00\nTffea00\nTa5d6ffNo Identity was imported into Sideband.Ta5d6ff"Tb4b4b4, Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_button Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Te6edf3c_yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3c_dl_yesTb4b4b4)
Te6edf3c_no_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3c_dl_noTb4b4b4)

Te6edf3c_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

T8b949e### Telemetry Screen
T8b949e######################################

Tff7b72def Td2a8fftelemetry_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8fftelemetry_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_screen Tff7b72= Te6edf3TelemetryTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72selfTff7b72.Td2a8fftelemetry_ready Tff7b72= Tff7b72True
Tff7b72def Td2a8fftelemetry_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6fftelemetry_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8fftelemetry_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fftelemetry_readyTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffclose_sub_telemetry_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_actionTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffconverse_from_telemetryTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffobject_details_screen Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3context_dest Tff7b72= Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffobject_hash
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffobject_hash Tff7b72== Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhashTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffhas_conversationTb4b4b4(Te6edf3context_destTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffcreate_conversationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.flags.new_conversationsTa5d6ff"Tb4b4b4, Tff7b72TrueTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffopen_conversationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72def Td2a8fftelemetry_send_updateTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6fftelemetry_info_dialogTa5d6ff"Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialog Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffInfoTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)

Te6edf3collector_address Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_collectorTa5d6ff"Tb4b4b4]

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_send_all_to_collectorTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3last_timebase Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffgetpersistentTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6fftelemetry.Tffd700{Te6edf3RNSTff7b72.Td2a8ffhexrepTb4b4b4(Te6edf3collector_addressTb4b4b4, Te6edf3delimitTff7b72=Tff7b72FalseTb4b4b4)Tffd700}Ta5d6ff.last_send_success_timebaseTa5d6ff"Tb4b4b4) Tff7b72or T79c0ff0Tb4b4b4)
Te6edf3result Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffcreate_telemetry_collector_responseTb4b4b4(Te6edf3to_addrTff7b72=Te6edf3collector_addressTb4b4b4, Te6edf3timebaseTff7b72=Te6edf3last_timebaseTb4b4b4, Te6edf3is_authorized_telemetry_requestTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3result Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsend_latest_telemetryTb4b4b4(Te6edf3to_addrTff7b72=Te6edf3collector_addressTb4b4b4)

Tff7b72if Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffno_addressTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffInvalid AddressTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffYou must specify a valid LXMF address for the collector you want to sent data to.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffdestination_unknownTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffUnknown DestinationTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffNo keys known for the destination. Connected reticules have been queried for the keys. Try again when an announce for the destination has arrived.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffin_progressTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffTransfer In ProgressTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThere is already an outbound telemetry transfer in progress to the collector.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffalready_sentTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffAlready DeliveredTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThe current telemetry data was already sent and delivered to the collector or propagation network.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffsentTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffUpdate SentTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffA telemetry update was sent to the collector.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffnot_sentTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffNot SentTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThe telemetry update could not be sent.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffnothing_to_sendTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffNothing to SendTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThere was no new data to send.Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffUnknown StatusTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThe status of the telemetry update is unknown: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3resultTb4b4b4)

Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8fftitle Tff7b72= Te6edf3title_str
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8fftext Tff7b72= Te6edf3info_str
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8fftelemetry_request_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6fftelemetry_info_dialogTa5d6ff"Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialog Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3ok_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffInfoTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3ok_button Tb4b4b4]Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8ffdl_okTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Te6edf3ok_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_okTb4b4b4)

Te6edf3result Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffrequest_latest_telemetryTb4b4b4(Te6edf3from_addrTff7b72=Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_collectorTa5d6ff"Tb4b4b4]Tb4b4b4)

Tff7b72if Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffno_addressTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffInvalid AddressTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffYou must specify a valid LXMF address for the collector you want to request data from.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffdestination_unknownTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffUnknown DestinationTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffNo keys known for the destination. Connected reticules have been queried for the keys. Try again when an announce for the destination has arrived.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffin_progressTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffTransfer In ProgressTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThere is already a telemetry request transfer in progress for this peer.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffsentTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffRequest SentTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffA telemetry request was sent to the peer. The peer should send any available telemetry shortly.Ta5d6ff"
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffnot_sentTa5d6ff"Tb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffNot SentTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffA telemetry request could not be sent.Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3title_str Tff7b72= Ta5d6ff"Ta5d6ffUnknown StatusTa5d6ff"
Te6edf3info_str Tff7b72= Ta5d6ff"Ta5d6ffThe status of the telemetry request is unknown: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3resultTb4b4b4)

Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8fftitle Tff7b72= Te6edf3title_str
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8fftext Tff7b72= Te6edf3info_str
Tff7b72selfTff7b72.Td2a8fftelemetry_info_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

T8b949e### Map Screen
T8b949e######################################

Tff7b72def Td2a8ffmap_fm_got_pathTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3pathTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_fm_exitedTb4b4b4(Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3source Tff7b72= Te6edf3MBTilesMapSourceTb4b4b4(Te6edf3pathTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_update_sourceTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_fileTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3path
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_pathTa5d6ff"Tb4b4b4] Tff7b72= Tffa657strTb4b4b4(Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3pathTb4b4b4)Tff7b72.Td2a8ffparentTff7b72.Td2a8ffresolveTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Te6edf3toastTb4b4b4(Ta5d6ff"Ta5d6ffUsing Tffea00\"Ta5d6ff"Tff7b72+Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffbasenameTb4b4b4(Te6edf3pathTb4b4b4)Tff7b72+Ta5d6ff"Tffea00\"Ta5d6ff as offline mapTa5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError while loading map Tffea00\"Tffd700{Te6edf3pathTffd700}Tffea00\"Ta5d6ff: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3toastTb4b4b4(Ta5d6ff"Ta5d6ffCould not load map Tffea00\"Ta5d6ff"Tff7b72+Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffbasenameTb4b4b4(Te6edf3pathTb4b4b4)Tff7b72+Ta5d6ff"Tffea00\"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_fileTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_offlineTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_onlineTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffmap_settings_load_statesTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_update_sourceTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffmap_fm_exitedTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmanager_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8fffile_managerTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_update_sourceTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffmap_get_offline_sourceTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffoffline_source Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffoffline_source
Tff7b72elseTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3current_map_path Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_fileTa5d6ff"Tb4b4b4]
Tff7b72if Te6edf3current_map_path Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffMap path cannot be NoneTa5d6ff"Tb4b4b4)
Te6edf3source Tff7b72= Te6edf3MBTilesMapSourceTb4b4b4(Te6edf3current_map_pathTb4b4b4, Te6edf3cache_dirTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_cacheTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffoffline_source Tff7b72= Te6edf3source
Tff7b72return Tff7b72selfTff7b72.Td2a8ffoffline_source
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffError while loading map from Tffea00\"Tffd700{Te6edf3current_map_pathTffd700}Tffea00\"Ta5d6ff: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_fileTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_offlineTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_onlineTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_load_statesTb4b4b4(Tb4b4b4)

Tff7b72return Tff7b72None

Tff7b72def Td2a8ffmap_get_sourceTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3source Tff7b72= Tff7b72None
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_offlineTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3source Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_offline_sourceTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3source Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3source Tff7b72= Te6edf3MapSourceTff7b72.Td2a8fffrom_providerTb4b4b4(Ta5d6ff"Ta5d6ffosmTa5d6ff"Tb4b4b4, Te6edf3cache_dirTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_cacheTb4b4b4, Te6edf3quad_keyTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72return Te6edf3source

Tff7b72def Td2a8ffmap_update_sourceTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sourceTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3ns Tff7b72= Te6edf3source Tff7b72or Tff7b72selfTff7b72.Td2a8ffmap_get_sourceTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3source Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3maxz Tff7b72= Te6edf3sourceTff7b72.Td2a8ffmax_zoom
Te6edf3minz Tff7b72= Te6edf3sourceTff7b72.Td2a8ffmin_zoom
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoom Tff7b72> Te6edf3maxzTb4b4b4:
Te6edf3mz Tff7b72= Te6edf3maxzTb4b4b4; Te6edf3pxTb4b4b4, Te6edf3py Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_zoom_centerTb4b4b4(Tb4b4b4)Tb4b4b4; Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffset_zoom_atTb4b4b4(Te6edf3mzTb4b4b4, Te6edf3pxTb4b4b4, Te6edf3pyTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoom Tff7b72< Te6edf3minzTb4b4b4:
Te6edf3mz Tff7b72= Te6edf3minzTb4b4b4; Te6edf3pxTb4b4b4, Te6edf3py Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_zoom_centerTb4b4b4(Tb4b4b4)Tb4b4b4; Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffset_zoom_atTb4b4b4(Te6edf3mzTb4b4b4, Te6edf3pxTb4b4b4, Te6edf3pyTb4b4b4)

Te6edf3m Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap
Te6edf3nlat Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflat
Te6edf3nlon Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflon
Tff7b72if Te6edf3nlat Tff7b72< Tff7b72-T79c0ff89Tb4b4b4: Te6edf3nlat Tff7b72= Tff7b72-T79c0ff89
Tff7b72if Te6edf3nlat Tff7b72> T79c0ff89Tb4b4b4: Te6edf3nlat Tff7b72= T79c0ff89
Tff7b72if Te6edf3nlon Tff7b72< Tff7b72-T79c0ff179Tb4b4b4: Te6edf3nlon Tff7b72= Tff7b72-T79c0ff179
Tff7b72if Te6edf3nlon Tff7b72> T79c0ff179Tb4b4b4: Te6edf3nlon Tff7b72= T79c0ff179
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffcenter_onTb4b4b4(Te6edf3nlatTb4b4b4,Te6edf3nlonTb4b4b4)


Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_source Tff7b72= Te6edf3ns

Tff7b72def Td2a8ffmap_layers_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3ml Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_layer
Te6edf3layers Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_offlineTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3layersTff7b72.Td2a8ffappendTb4b4b4(Ta5d6ff"Ta5d6ffofflineTa5d6ff"Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_onlineTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3layersTff7b72.Td2a8ffappendTb4b4b4(Ta5d6ff"Ta5d6ffosmTa5d6ff"Tb4b4b4)
Te6edf3layersTff7b72.Td2a8ffappendTb4b4b4(Ta5d6ff"Ta5d6ffveTa5d6ff"Tb4b4b4)

Tff7b72if Te6edf3ml Tff7b72== Tff7b72NoneTb4b4b4: Te6edf3ml Tff7b72= Te6edf3layersTb4b4b4[T79c0ff0Tb4b4b4]

Tff7b72if Tff7b72not Te6edf3ml Tff7b72in Te6edf3layersTb4b4b4:
Te6edf3ml Tff7b72= Te6edf3layersTb4b4b4[T79c0ff0Tb4b4b4]

Te6edf3mli Tff7b72= Te6edf3layersTff7b72.Td2a8ffindexTb4b4b4(Te6edf3mlTb4b4b4)
Te6edf3mli Tff7b72= Tb4b4b4(Te6edf3mliTff7b72+T79c0ff1Tb4b4b4)Tff7b72%Tffa657lenTb4b4b4(Te6edf3layersTb4b4b4)
Te6edf3ml Tff7b72= Te6edf3layersTb4b4b4[Te6edf3mliTb4b4b4]

Te6edf3source Tff7b72= Tff7b72None
Tff7b72if Te6edf3ml Tff7b72== Ta5d6ff"Ta5d6ffofflineTa5d6ff"Tb4b4b4: Te6edf3source Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_offline_sourceTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3ml Tff7b72== Ta5d6ff"Ta5d6ffosmTa5d6ff"Tb4b4b4: Te6edf3source Tff7b72= Te6edf3MapSourceTff7b72.Td2a8fffrom_providerTb4b4b4(Ta5d6ff"Ta5d6ffosmTa5d6ff"Tb4b4b4, Te6edf3cache_dirTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_cacheTb4b4b4, Te6edf3quad_keyTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72if Te6edf3ml Tff7b72== Ta5d6ff"Ta5d6ffveTa5d6ff"Tb4b4b4: Te6edf3source Tff7b72= Te6edf3MapSourceTff7b72.Td2a8fffrom_providerTb4b4b4(Ta5d6ff"Ta5d6ffveTa5d6ff"Tb4b4b4, Te6edf3cache_dirTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_cacheTb4b4b4, Te6edf3quad_keyTff7b72=Tff7b72TrueTb4b4b4)

Tff7b72if Te6edf3source Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_layer Tff7b72= Te6edf3ml
Tff7b72selfTff7b72.Td2a8ffmap_update_sourceTb4b4b4(Te6edf3sourceTb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while switching map layer: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72def Td2a8ffmap_select_file_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3perm_ok Tff7b72= Tff7b72False
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_pathTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffis_androidTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3perm_ok Tff7b72= Tff7b72selfTff7b72.Td2a8ffcheck_storage_permissionTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_externalTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3path Tff7b72= Te6edf3secondary_external_storage_pathTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3path Tff7b72== Tff7b72NoneTb4b4b4: Te6edf3path Tff7b72= Te6edf3primary_external_storage_pathTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3path Tff7b72= Te6edf3primary_external_storage_pathTb4b4b4(Tb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3perm_ok Tff7b72= Tff7b72True
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_externalTa5d6ff"Tb4b4b4]Tb4b4b4:
Te6edf3path Tff7b72= Ta5d6ff"Ta5d6ff/Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3path Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexpanduserTb4b4b4(Ta5d6ff"Ta5d6ff~Ta5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3perm_ok Tff7b72= Tff7b72True
Te6edf3path Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_pathTa5d6ff"Tb4b4b4]

Tff7b72if Te6edf3perm_ok Tff7b72and Te6edf3path Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8fffile_manager Tff7b72= Te6edf3MDFileManagerTb4b4b4(
Te6edf3exit_managerTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_fm_exitedTb4b4b4,
Te6edf3select_pathTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_fm_got_pathTb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffile_managerTff7b72.Td2a8ffext Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ff.mbtilesTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8fffile_managerTff7b72.Td2a8ffshowTb4b4b4(Te6edf3pathTb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_pathTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Te6edf3toastTb4b4b4(Ta5d6ff"Ta5d6ffError reading directory, check permissions!Ta5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_pathTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)
Te6edf3toastTb4b4b4(Ta5d6ff"Ta5d6ffNo file access, check permissions!Ta5d6ff"Tb4b4b4)

Te6edf3map_nav_divisor Tff7b72= T79c0ff12
Te6edf3map_nav_zoom Tff7b72= T79c0ff0.25
Tff7b72def Td2a8ffmap_nav_leftTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3modifierTff7b72=T79c0ff1.0Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3bb Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffget_bboxTb4b4b4(Tb4b4b4)
Te6edf3lat_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff2Tb4b4b4]Tb4b4b4)
Te6edf3lon_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff3Tb4b4b4]Tb4b4b4)
Te6edf3span Tff7b72= Tffa657minTb4b4b4(Te6edf3lat_spanTb4b4b4, Te6edf3lon_spanTb4b4b4)
Te6edf3delta Tff7b72= Tb4b4b4(Tff7b72-Te6edf3spanTff7b72/Tff7b72selfTff7b72.Td2a8ffmap_nav_divisorTb4b4b4)Tff7b72*Te6edf3modifier
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffcenter_onTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflatTb4b4b4, Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflonTff7b72+Te6edf3deltaTb4b4b4)

Tff7b72def Td2a8ffmap_nav_rightTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3modifierTff7b72=T79c0ff1.0Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3bb Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffget_bboxTb4b4b4(Tb4b4b4)
Te6edf3lat_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff2Tb4b4b4]Tb4b4b4)
Te6edf3lon_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff3Tb4b4b4]Tb4b4b4)
Te6edf3span Tff7b72= Tffa657minTb4b4b4(Te6edf3lat_spanTb4b4b4, Te6edf3lon_spanTb4b4b4)
Te6edf3delta Tff7b72= Tb4b4b4(Te6edf3spanTff7b72/Tff7b72selfTff7b72.Td2a8ffmap_nav_divisorTb4b4b4)Tff7b72*Te6edf3modifier
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffcenter_onTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflatTb4b4b4, Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflonTff7b72+Te6edf3deltaTb4b4b4)

Tff7b72def Td2a8ffmap_nav_upTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3modifierTff7b72=T79c0ff1.0Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3bb Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffget_bboxTb4b4b4(Tb4b4b4)
Te6edf3lat_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff2Tb4b4b4]Tb4b4b4)
Te6edf3lon_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff3Tb4b4b4]Tb4b4b4)
Te6edf3span Tff7b72= Tffa657minTb4b4b4(Te6edf3lat_spanTb4b4b4, Te6edf3lon_spanTb4b4b4)
Te6edf3delta Tff7b72= Tb4b4b4(Te6edf3spanTff7b72/Tff7b72selfTff7b72.Td2a8ffmap_nav_divisorTb4b4b4)Tff7b72*Te6edf3modifier
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffcenter_onTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflatTff7b72+Te6edf3deltaTb4b4b4, Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflonTb4b4b4)

Tff7b72def Td2a8ffmap_nav_downTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3modifierTff7b72=T79c0ff1.0Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3bb Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffget_bboxTb4b4b4(Tb4b4b4)
Te6edf3lat_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff2Tb4b4b4]Tb4b4b4)
Te6edf3lon_span Tff7b72= Tffa657absTb4b4b4(Te6edf3bbTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72- Te6edf3bbTb4b4b4[T79c0ff3Tb4b4b4]Tb4b4b4)
Te6edf3span Tff7b72= Tffa657minTb4b4b4(Te6edf3lat_spanTb4b4b4, Te6edf3lon_spanTb4b4b4)
Te6edf3delta Tff7b72= Tb4b4b4(Tff7b72-Te6edf3spanTff7b72/Tff7b72selfTff7b72.Td2a8ffmap_nav_divisorTb4b4b4)Tff7b72*Te6edf3modifier
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffcenter_onTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflatTff7b72+Te6edf3deltaTb4b4b4, Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fflonTb4b4b4)

Tff7b72def Td2a8ffmap_get_zoom_centerTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3bb Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffget_bboxTb4b4b4(Tb4b4b4)
Te6edf3slat Tff7b72= Tb4b4b4(Te6edf3bbTb4b4b4[T79c0ff2Tb4b4b4]Tff7b72-Te6edf3bbTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tff7b72/T79c0ff2Tb4b4b4; Te6edf3slon Tff7b72= Tb4b4b4(Te6edf3bbTb4b4b4[T79c0ff3Tb4b4b4]Tff7b72-Te6edf3bbTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tff7b72/T79c0ff2
Te6edf3zlat Tff7b72= Te6edf3bbTb4b4b4[T79c0ff0Tb4b4b4]Tff7b72+Te6edf3slatTb4b4b4; Te6edf3zlon Tff7b72= Te6edf3bbTb4b4b4[T79c0ff1Tb4b4b4]Tff7b72+Te6edf3slon
Tff7b72return Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffget_window_xy_fromTb4b4b4(Te6edf3zlatTb4b4b4, Te6edf3zlonTb4b4b4, Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoomTb4b4b4)

Tff7b72def Td2a8ffmap_nav_zoom_outTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3modifierTff7b72=T79c0ff1.0Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3zd Tff7b72= Tff7b72-Tff7b72selfTff7b72.Td2a8ffmap_nav_zoomTff7b72*Te6edf3modifier
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoomTff7b72+Te6edf3zd Tff7b72> Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_sourceTff7b72.Td2a8ffmin_zoomTb4b4b4:
Te6edf3pxTb4b4b4, Te6edf3py Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_zoom_centerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffanimated_diff_scale_atTb4b4b4(Te6edf3zdTb4b4b4, Te6edf3pxTb4b4b4, Te6edf3pyTb4b4b4)

Tff7b72def Td2a8ffmap_nav_zoom_inTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3modifierTff7b72=T79c0ff1.0Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3zd Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_nav_zoomTff7b72*Te6edf3modifier
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoomTff7b72+Te6edf3zd Tff7b72< Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_sourceTff7b72.Td2a8ffmax_zoom Tff7b72or Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffscale Tff7b72< T79c0ff3.0Tb4b4b4:
Te6edf3pxTb4b4b4, Te6edf3py Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_zoom_centerTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffanimated_diff_scale_atTb4b4b4(Te6edf3zdTb4b4b4, Te6edf3pxTb4b4b4, Te6edf3pyTb4b4b4)

Tff7b72def Td2a8ffmap_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_openTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4, Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_openTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffmap_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3msource Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_get_sourceTb4b4b4(Tb4b4b4)
Te6edf3mzoom Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_zoomTa5d6ff"Tb4b4b4]
Te6edf3mlat Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_latTa5d6ff"Tb4b4b4]Tb4b4b4; Te6edf3mlon Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_lonTa5d6ff"Tb4b4b4]
Tff7b72if Te6edf3mzoom Tff7b72> Te6edf3msourceTff7b72.Td2a8ffmax_zoomTb4b4b4: Te6edf3mzoom Tff7b72= Te6edf3msourceTff7b72.Td2a8ffmax_zoom
Tff7b72if Te6edf3mzoom Tff7b72< Te6edf3msourceTff7b72.Td2a8ffmin_zoomTb4b4b4: Te6edf3mzoom Tff7b72= Te6edf3msourceTff7b72.Td2a8ffmin_zoom
Tff7b72if Te6edf3mlat Tff7b72< Tff7b72-T79c0ff89Tb4b4b4: Te6edf3mlat Tff7b72= Tff7b72-T79c0ff89
Tff7b72if Te6edf3mlat Tff7b72> T79c0ff89Tb4b4b4: Te6edf3mlat Tff7b72= T79c0ff89
Tff7b72if Te6edf3mlon Tff7b72< Tff7b72-T79c0ff179Tb4b4b4: Te6edf3mlon Tff7b72= Tff7b72-T79c0ff179
Tff7b72if Te6edf3mlon Tff7b72> T79c0ff179Tb4b4b4: Te6edf3mlon Tff7b72= T79c0ff179

Tff7b72selfTff7b72.Td2a8ffmap_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_map_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmap_screenTb4b4b4)

Tff7b72from T7ee787mapview Tff7b72import Te6edf3MapView
Te6edf3mapview Tff7b72= Te6edf3MapViewTb4b4b4(Te6edf3map_sourceTff7b72=Te6edf3msourceTb4b4b4, Te6edf3zoomTff7b72=Te6edf3mzoomTb4b4b4, Te6edf3latTff7b72=Te6edf3mlatTb4b4b4, Te6edf3lonTff7b72=Te6edf3mlonTb4b4b4)
Te6edf3mapviewTff7b72.Td2a8ffsnap_to_zoom Tff7b72= Tff7b72False
Te6edf3mapviewTff7b72.Td2a8ffdouble_tap_zoom Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffmap Tff7b72= Te6edf3mapview
Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmap Tff7b72= Te6edf3mapview
Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTb4b4b4)

Tff7b72def Td2a8ffmap_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffmap_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Tff7b72not Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffmap_markersTa5d6ff"Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8ffmap_markers Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_markers Tff7b72= Tb4b4b4{Tb4b4b4}

Tff7b72def Td2a8ffam_jobTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_update_markersTb4b4b4(Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3am_jobTb4b4b4, T79c0ff0.15Tb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffmap_settings_load_statesTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap_settings_screen Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_onlineTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_onlineTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_offlineTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_offlineTa5d6ff"Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_storage_externalTff7b72.Td2a8ffactive Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_externalTa5d6ff"Tb4b4b4]

Tff7b72def Td2a8ffmap_settings_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_load_statesTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffmap_settings_saveTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_externalTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_storage_externalTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_onlineTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_onlineTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_use_offlineTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_offlineTff7b72.Td2a8ffactive
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsave_configurationTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffexternal_toggleTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_pathTa5d6ff"Tb4b4b4] Tff7b72= Tff7b72None
Te6edf3map_settings_saveTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffoffline_toggleTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_offlineTff7b72.Td2a8ffactiveTb4b4b4:
T8b949e# self.map_settings_screen.ids.map_use_online.active = False
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_storage_fileTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_select_file_actionTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_onlineTff7b72.Td2a8ffactive Tff7b72= Tff7b72True
Te6edf3map_settings_saveTb4b4b4(Tb4b4b4)Tb4b4b4; Tff7b72selfTff7b72.Td2a8ffmap_update_sourceTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffonline_toggleTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_onlineTff7b72.Td2a8ffactiveTb4b4b4:
T8b949e# self.map_settings_screen.ids.map_use_offline.active = False
Tff7b72pass
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_offlineTff7b72.Td2a8ffactive Tff7b72= Tff7b72True
Te6edf3map_settings_saveTb4b4b4(Tb4b4b4)Tb4b4b4; Tff7b72selfTff7b72.Td2a8ffmap_update_sourceTb4b4b4(Tb4b4b4)


Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_offlineTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3offline_toggleTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_use_onlineTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3online_toggleTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_storage_externalTff7b72.Td2a8ffbindTb4b4b4(Te6edf3activeTff7b72=Te6edf3external_toggleTb4b4b4)

Tff7b72def Td2a8ffmap_settings_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffmap_settings_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_map_settings_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_config_infoTff7b72.Td2a8fftext Tff7b72= Ta5d6ff"Tffea00\nTffea00\nTa5d6ffSideband can use map sources from the Internet, or a map source stored locally on this device in MBTiles format.Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_settings_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffmap_settings_initTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffmap_settings_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72def Td2a8ffupdate_cache_sizeTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Te6edf3size Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffget_map_cache_sizeTb4b4b4(Tb4b4b4)
Te6edf3size_str Tff7b72= Te6edf3RNSTff7b72.Td2a8ffprettysizeTb4b4b4(Te6edf3sizeTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_cache_buttonTff7b72.Td2a8fftext Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffClear Tffd700{Te6edf3size_strTffd700}Ta5d6ff map cacheTa5d6ff"
Tff7b72if Te6edf3size Tff7b72> T79c0ff0.0Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_cache_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_cache_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_cache_buttonTff7b72.Td2a8fftext Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffNo data in map cacheTa5d6ff"

Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3update_cache_sizeTb4b4b4, T79c0ff0.35Tb4b4b4)

Tff7b72def Td2a8ffmap_clear_cacheTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3yes_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4, Te6edf3theme_text_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4, Te6edf3line_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4, Te6edf3text_colorTff7b72=Tff7b72selfTff7b72.Td2a8ffcolor_rejectTb4b4b4)
Te6edf3no_button Tff7b72= Te6edf3MDRectangleFlatButtonTb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffNoTa5d6ff"Tb4b4b4,Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffClear map cache?Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[ Te6edf3yes_buttonTb4b4b4, Te6edf3no_button Tb4b4b4]Tb4b4b4,
T8b949e# elevation=0,
Tb4b4b4)
Tff7b72def Td2a8ffdl_yesTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffclear_map_cacheTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffcbTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_settings_actionTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_settings_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_cache_buttonTff7b72.Td2a8ffdisabled Tff7b72= Tff7b72True
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3cbTb4b4b4, T79c0ff1.2Tb4b4b4)

Tff7b72def Td2a8ffdl_noTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4:
Te6edf3dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)

Te6edf3yes_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_yesTb4b4b4)
Te6edf3no_buttonTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_releaseTff7b72=Te6edf3dl_noTb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffclose_location_error_dialogTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6fflocation_error_dialogTa5d6ff"Tb4b4b4) Tff7b72and Tff7b72selfTff7b72.Td2a8fflocation_error_dialog Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8fflocation_error_dialogTff7b72.Td2a8ffdismissTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffmap_object_listTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72pass

Tff7b72def Td2a8ffmap_showTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3locationTb4b4b4, Te6edf3retryTff7b72=T79c0ff0Tb4b4b4)Tb4b4b4:
Te6edf3max_tries Tff7b72= T79c0ff6
Tff7b72if Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffmapTa5d6ff"Tb4b4b4) Tff7b72and Tff7b72selfTff7b72.Td2a8ffmapTb4b4b4:
Te6edf3mz Tff7b72= T79c0ff16
Te6edf3lat Tff7b72= Te6edf3locationTb4b4b4[Ta5d6ff"Ta5d6fflatitudeTa5d6ff"Tb4b4b4]
Te6edf3lon Tff7b72= Te6edf3locationTb4b4b4[Ta5d6ff"Ta5d6fflongtitudeTa5d6ff"Tb4b4b4]
Tff7b72if Te6edf3mz Tff7b72> Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_sourceTff7b72.Td2a8ffmax_zoomTb4b4b4: Te6edf3mz Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_sourceTff7b72.Td2a8ffmax_zoom
Tff7b72if Te6edf3mz Tff7b72< Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_sourceTff7b72.Td2a8ffmin_zoomTb4b4b4: Te6edf3mz Tff7b72= Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffmap_sourceTff7b72.Td2a8ffmin_zoom
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffzoom Tff7b72= Te6edf3mz
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fftrigger_updateTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8ffcenter_onTb4b4b4(Te6edf3latTb4b4b4,Te6edf3lonTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fftrigger_updateTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3retry Tff7b72< Te6edf3max_triesTb4b4b4:
Tff7b72def Td2a8ffjTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_showTb4b4b4(Te6edf3locationTb4b4b4, Te6edf3retryTff7b72=Te6edf3retryTff7b72+T79c0ff1Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3jTb4b4b4, T79c0ff0.5Tb4b4b4)

Tff7b72def Td2a8ffmap_show_peer_locationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3context_destTb4b4b4)Tb4b4b4:
Te6edf3location Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffpeer_locationTb4b4b4(Te6edf3context_destTb4b4b4)
Tff7b72if Tff7b72not Te6edf3locationTb4b4b4:
Tff7b72selfTff7b72.Td2a8fflocation_error_dialog Tff7b72= Te6edf3MDDialogTb4b4b4(
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffNo LocationTa5d6ff"Tb4b4b4,
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffNo location updates have been received from this peer. You can use the the [b]Situation Map[/b] to manually search for earlier telemetry.Ta5d6ff"Tb4b4b4,
Te6edf3buttonsTff7b72=Tb4b4b4[
Te6edf3MDRectangleFlatButtonTb4b4b4(
Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4,
Te6edf3font_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff18Tb4b4b4)Tb4b4b4,
Te6edf3on_releaseTff7b72=Tff7b72selfTff7b72.Td2a8ffclose_location_error_dialog
Tb4b4b4)
Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fflocation_error_dialogTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_actionTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_showTb4b4b4(Te6edf3locationTb4b4b4)

Tff7b72def Td2a8ffmap_display_telemetryTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_actionTb4b4b4(Te6edf3senderTb4b4b4)

Tff7b72def Td2a8ffmap_display_own_telemetryTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffupdate_telemetryTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffobject_details_actionTb4b4b4(Te6edf3source_destTff7b72=Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhashTb4b4b4,Te6edf3from_telemetryTff7b72=Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffclose_sub_map_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_actionTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffobject_details_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3from_convTff7b72=Tff7b72FalseTb4b4b4, Te6edf3from_telemetryTff7b72=Tff7b72FalseTb4b4b4, Te6edf3source_destTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_openTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4, Te6edf3from_convTff7b72=Te6edf3from_convTb4b4b4, Te6edf3from_telemetryTff7b72=Te6edf3from_telemetryTb4b4b4, Te6edf3source_destTff7b72=Te6edf3source_destTb4b4b4, Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_openTb4b4b4(Te6edf3senderTff7b72=Te6edf3senderTb4b4b4, Te6edf3from_convTff7b72=Te6edf3from_convTb4b4b4, Te6edf3from_telemetryTff7b72=Te6edf3from_telemetryTb4b4b4, Te6edf3source_destTff7b72=Te6edf3source_destTb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffobject_details_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffobject_details_screen Tff7b72= Te6edf3ObjectDetailsTb4b4b4(Tff7b72selfTb4b4b4)

Tff7b72def Td2a8ffobject_details_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3from_convTff7b72=Tff7b72FalseTb4b4b4, Te6edf3from_telemetryTff7b72=Tff7b72FalseTb4b4b4, Te6edf3source_destTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_enabledTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72TrueTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffupdate_telemetryTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3source_dest Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3telemetry_source Tff7b72= Te6edf3source_dest
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3sender Tff7b72!= Tff7b72None Tff7b72and Tffa657hasattrTb4b4b4(Te6edf3senderTb4b4b4, Ta5d6ff"Ta5d6ffsource_destTa5d6ff"Tb4b4b4) Tff7b72and Te6edf3senderTff7b72.Td2a8ffsource_dest Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3telemetry_source Tff7b72= Te6edf3senderTff7b72.Td2a8ffsource_dest
Tff7b72elseTb4b4b4:
Te6edf3telemetry_source Tff7b72= Tff7b72None

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)

Tff7b72if Te6edf3telemetry_source Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversations_actionTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72elseTb4b4b4:
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72lambda Te6edf3dtTb4b4b4: Tff7b72selfTff7b72.Td2a8ffobject_details_screenTff7b72.Td2a8ffset_sourceTb4b4b4(Te6edf3telemetry_sourceTb4b4b4, Te6edf3from_convTff7b72=Te6edf3from_convTb4b4b4, Te6edf3from_telemetryTff7b72=Te6edf3from_telemetryTb4b4b4)Tb4b4b4, T79c0ff0.0Tb4b4b4)

Tff7b72def Td2a8ffvjTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffobject_details_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3vjTb4b4b4, T79c0ff0.15Tb4b4b4)

Tff7b72def Td2a8ffmap_create_markerTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sourceTb4b4b4, Te6edf3telemetryTb4b4b4, Te6edf3appearanceTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3l Tff7b72= Te6edf3telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]
Te6edf3a_icon Tff7b72= Te6edf3appearanceTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3a_fg Tff7b72= Te6edf3appearanceTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4; Te6edf3a_bg Tff7b72= Te6edf3appearanceTb4b4b4[T79c0ff2Tb4b4b4]
Te6edf3marker Tff7b72= Te6edf3CustomMapMarkerTb4b4b4(Te6edf3latTff7b72=Te6edf3lTb4b4b4[Ta5d6ff"Ta5d6fflatitudeTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3lonTff7b72=Te6edf3lTb4b4b4[Ta5d6ff"Ta5d6fflongtitudeTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3icon_bgTff7b72=Te6edf3a_bgTb4b4b4)
Te6edf3markerTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Te6edf3markerTff7b72.Td2a8ffsource_dest Tff7b72= Te6edf3source
Te6edf3markerTff7b72.Td2a8fflocation_time Tff7b72= Te6edf3lTb4b4b4[Ta5d6ff"Ta5d6fflast_updateTa5d6ff"Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fficon Tff7b72= Te6edf3MDMapIconButtonTb4b4b4(
Te6edf3iconTff7b72=Te6edf3a_iconTb4b4b4, Te6edf3icon_colorTff7b72=Te6edf3a_fgTb4b4b4,
Te6edf3md_bg_colorTff7b72=Te6edf3a_bgTb4b4b4, Te6edf3theme_icon_colorTff7b72=Ta5d6ff"Ta5d6ffCustomTa5d6ff"Tb4b4b4,
Te6edf3icon_sizeTff7b72=Te6edf3dpTb4b4b4(T79c0ff32Tb4b4b4)Tb4b4b4,
Te6edf3on_releaseTff7b72=Tff7b72selfTff7b72.Td2a8ffmap_display_telemetryTb4b4b4,
Tb4b4b4)
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8ff_default_icon_pad Tff7b72= Te6edf3dpTb4b4b4(T79c0ff16Tb4b4b4)
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8ffsource_dest Tff7b72= Te6edf3markerTff7b72.Td2a8ffsource_dest
Te6edf3markerTff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3markerTff7b72.Td2a8fficonTb4b4b4)

T8b949e########
T8b949e# marker.badge = MDMapIconButton(
T8b949e# icon="network-strength-2", icon_color=[0,0,0,1],
T8b949e# md_bg_color=[1,1,1,1], theme_icon_color="Custom",
T8b949e# icon_size=dp(18),
T8b949e# )
T8b949e# marker.badge._default_icon_pad = dp(5)
T8b949e# marker.icon.add_widget(marker.badge)
T8b949e########

Tff7b72return Te6edf3marker

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCould not create map marker for Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3sourceTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72return Tff7b72None

Tff7b72def Td2a8ffmap_update_markersTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffUpdating map markersTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3earliest Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72- Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6ffmap_history_limitTa5d6ff"Tb4b4b4]
Te6edf3telemetry_entries Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflist_telemetryTb4b4b4(Te6edf3afterTff7b72=Te6edf3earliestTb4b4b4)
Te6edf3own_address Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhash
Te6edf3changes Tff7b72= Tff7b72False

T8b949e# Add own marker if available
Te6edf3retain_own Tff7b72= Tff7b72False
Te6edf3own_telemetry Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffget_telemetryTb4b4b4(Tb4b4b4)
Te6edf3own_appearance Tff7b72= Tb4b4b4[
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_iconTa5d6ff"Tb4b4b4]Tb4b4b4,
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_fgTa5d6ff"Tb4b4b4]Tb4b4b4,
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_bgTa5d6ff"Tb4b4b4]
Tb4b4b4]

Te6edf3skip_entries Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftelemetry_display_trusted_onlyTa5d6ff"Tb4b4b4]Tb4b4b4:
Tff7b72for Te6edf3telemetry_source Tff7b72in Te6edf3telemetry_entriesTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffis_trustedTb4b4b4(Te6edf3telemetry_sourceTb4b4b4)Tb4b4b4:
Te6edf3skip_entriesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3telemetry_sourceTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass
Tff7b72for Te6edf3skip_entry Tff7b72in Te6edf3skip_entriesTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3telemetry_entriesTff7b72.Td2a8ffpopTb4b4b4(Te6edf3skip_entryTb4b4b4)
Tff7b72exceptTb4b4b4:
Tff7b72pass

Tff7b72tryTb4b4b4:
Tff7b72if Te6edf3own_telemetry Tff7b72!= Tff7b72None Tff7b72and Ta5d6ff"Ta5d6fflocationTa5d6ff" Tff7b72in Te6edf3own_telemetry Tff7b72and Te6edf3own_telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72None Tff7b72and Te6edf3own_telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fflatitudeTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72None Tff7b72and Te6edf3own_telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fflongtitudeTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3retain_own Tff7b72= Tff7b72True
Tff7b72if Tff7b72not Te6edf3own_address Tff7b72in Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4:
Te6edf3marker Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_create_markerTb4b4b4(Te6edf3own_addressTb4b4b4, Te6edf3own_telemetryTb4b4b4, Te6edf3own_appearanceTb4b4b4)
Tff7b72if Te6edf3marker Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4[Te6edf3own_addressTb4b4b4] Tff7b72= Te6edf3marker
Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTff7b72.Td2a8ffadd_markerTb4b4b4(Te6edf3markerTb4b4b4)
Te6edf3changes Tff7b72= Tff7b72True

Tff7b72elseTb4b4b4:
Te6edf3marker Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4[Te6edf3own_addressTb4b4b4]
Te6edf3o Tff7b72= Te6edf3own_telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]
Tff7b72if Te6edf3oTb4b4b4[Ta5d6ff"Ta5d6fflast_updateTa5d6ff"Tb4b4b4] Tff7b72> Te6edf3markerTff7b72.Td2a8fflocation_time Tff7b72or Tb4b4b4(Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffown_appearance_changedTa5d6ff"Tb4b4b4) Tff7b72and Tff7b72selfTff7b72.Td2a8ffown_appearance_changedTb4b4b4)Tb4b4b4:
Te6edf3markerTff7b72.Td2a8fflocation_time Tff7b72= Te6edf3oTb4b4b4[Ta5d6ff"Ta5d6fflast_updateTa5d6ff"Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fflat Tff7b72= Te6edf3oTb4b4b4[Ta5d6ff"Ta5d6fflatitudeTa5d6ff"Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fflon Tff7b72= Te6edf3oTb4b4b4[Ta5d6ff"Ta5d6fflongtitudeTa5d6ff"Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8fficon Tff7b72= Te6edf3own_appearanceTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8fficon_color Tff7b72= Te6edf3own_appearanceTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8ffmd_bg_color Tff7b72= Te6edf3own_appearanceTb4b4b4[T79c0ff2Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffown_appearance_changed Tff7b72= Tff7b72False
Te6edf3changes Tff7b72= Tff7b72True

Te6edf3stale_markers Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3marker Tff7b72in Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4:
Tff7b72if Tff7b72not Te6edf3marker Tff7b72in Te6edf3telemetry_entriesTb4b4b4:
Tff7b72if Te6edf3marker Tff7b72== Te6edf3own_addressTb4b4b4:
Tff7b72if Tff7b72not Te6edf3retain_ownTb4b4b4:
Te6edf3stale_markersTff7b72.Td2a8ffappendTb4b4b4(Te6edf3markerTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3stale_markersTff7b72.Td2a8ffappendTb4b4b4(Te6edf3markerTb4b4b4)

Tff7b72for Te6edf3marker Tff7b72in Te6edf3stale_markersTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffRemoving stale marker: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3markerTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3to_remove Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4[Te6edf3markerTb4b4b4]
Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTff7b72.Td2a8ffremove_markerTb4b4b4(Te6edf3to_removeTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmap_markersTff7b72.Td2a8ffpopTb4b4b4(Te6edf3markerTb4b4b4)
Te6edf3changes Tff7b72= Tff7b72True
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while removing map marker: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while updating own map marker: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72for Te6edf3telemetry_source Tff7b72in Te6edf3telemetry_entriesTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3skip Tff7b72= Tff7b72False
Tff7b72if Te6edf3telemetry_source Tff7b72== Te6edf3own_addressTb4b4b4:
Te6edf3skip Tff7b72= Tff7b72True
Tff7b72elif Te6edf3telemetry_source Tff7b72in Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4:
Te6edf3marker Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4[Te6edf3telemetry_sourceTb4b4b4]
Te6edf3newest_timestamp Tff7b72= Te6edf3telemetry_entriesTb4b4b4[Te6edf3telemetry_sourceTb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]
Tff7b72if Te6edf3newest_timestamp Tff7b72<Tff7b72= Te6edf3markerTff7b72.Td2a8fflocation_timeTb4b4b4:
Te6edf3skip Tff7b72= Tff7b72True

Te6edf3latest_viewable Tff7b72= Tff7b72None
Tff7b72if Tff7b72not Te6edf3skipTb4b4b4:
Tff7b72for Te6edf3telemetry_entry Tff7b72in Te6edf3telemetry_entriesTb4b4b4[Te6edf3telemetry_sourceTb4b4b4]Tb4b4b4:
Te6edf3telemetry_timestamp Tff7b72= Te6edf3telemetry_entryTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3telemetry_data Tff7b72= Te6edf3telemetry_entryTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3t Tff7b72= Te6edf3TelemeterTff7b72.Td2a8fffrom_packedTb4b4b4(Te6edf3telemetry_dataTb4b4b4)
Tff7b72if Te6edf3t Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3telemetry Tff7b72= Te6edf3tTff7b72.Td2a8ffread_allTb4b4b4(Tb4b4b4)
Tff7b72if Ta5d6ff"Ta5d6fflocationTa5d6ff" Tff7b72in Te6edf3telemetry Tff7b72and Te6edf3telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72None Tff7b72and Te6edf3telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fflatitudeTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72None Tff7b72and Te6edf3telemetryTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fflongtitudeTa5d6ff"Tb4b4b4] Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3latest_viewable Tff7b72= Te6edf3telemetry
Tff7b72break

Tff7b72if Te6edf3latest_viewable Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3l Tff7b72= Te6edf3latest_viewableTb4b4b4[Ta5d6ff"Ta5d6fflocationTa5d6ff"Tb4b4b4]
Tff7b72if Tff7b72not Te6edf3telemetry_source Tff7b72in Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4:
Te6edf3marker Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_create_markerTb4b4b4(Te6edf3telemetry_sourceTb4b4b4, Te6edf3latest_viewableTb4b4b4, Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffpeer_appearanceTb4b4b4(Te6edf3telemetry_sourceTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3marker Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4[Te6edf3telemetry_sourceTb4b4b4] Tff7b72= Te6edf3marker
Tff7b72selfTff7b72.Td2a8ffmap_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffmap_layoutTff7b72.Td2a8ffmapTff7b72.Td2a8ffadd_markerTb4b4b4(Te6edf3markerTb4b4b4)
Te6edf3changes Tff7b72= Tff7b72True
Tff7b72elseTb4b4b4:
Te6edf3marker Tff7b72= Tff7b72selfTff7b72.Td2a8ffmap_markersTb4b4b4[Te6edf3telemetry_sourceTb4b4b4]
Te6edf3markerTff7b72.Td2a8fflocation_time Tff7b72= Te6edf3latest_viewableTb4b4b4[Ta5d6ff"Ta5d6fftimeTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffutcTa5d6ff"Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fflat Tff7b72= Te6edf3lTb4b4b4[Ta5d6ff"Ta5d6fflatitudeTa5d6ff"Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fflon Tff7b72= Te6edf3lTb4b4b4[Ta5d6ff"Ta5d6fflongtitudeTa5d6ff"Tb4b4b4]
Te6edf3appearance Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffpeer_appearanceTb4b4b4(Te6edf3telemetry_sourceTb4b4b4)
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8fficon Tff7b72= Te6edf3appearanceTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8fficon_color Tff7b72= Te6edf3appearanceTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3markerTff7b72.Td2a8fficonTff7b72.Td2a8ffmd_bg_color Tff7b72= Te6edf3appearanceTb4b4b4[T79c0ff2Tb4b4b4]
Te6edf3changes Tff7b72= Tff7b72True

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError while updating map entry for Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3telemetry_sourceTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72selfTff7b72.Td2a8fflast_map_update Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3changesTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmapTff7b72.Td2a8fftrigger_updateTb4b4b4(Tff7b72TrueTb4b4b4)

T8b949e### Guide screen
T8b949e######################################
Tff7b72def Td2a8ffclose_guide_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffopen_conversationsTb4b4b4(Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffguide_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffguide_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffguide_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffguide_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffguide_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffguide_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffguide_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffguide_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffguide_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffguide_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_guide_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffguide_screenTb4b4b4)

Tff7b72def Td2a8fflink_execTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffljTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3webbrowserTff7b72.Td2a8ffopenTb4b4b4(Ta5d6ff"Ta5d6ffhttps://unsigned.io/donateTa5d6ff"Tb4b4b4)
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3ljTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Te6edf3guide_text1 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Introduction[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]Welcome to [i]Sideband[/i], an LXMF client for Android, Linux and macOS. With Sideband, you can communicate with other people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, or anything else Reticulum supports.

Ta5d6ffThis short guide will give you a basic introduction to the concepts that underpin Sideband and LXMF (which is the protocol that Sideband uses to communicate). If you are not already familiar with LXMF and Reticulum, it is probably a good idea to read this guide, since Sideband is very different from other messaging apps.Ta5d6ff"""
Te6edf3guide_text2 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Communication Without Subjection[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]Sideband is completely free, permission-less, anonymous and infrastructure-less. Sideband uses the peer-to-peer and distributed messaging system LXMF. There is no sign-up, no service providers, no Ta5d6ff"Ta5d6ffend-user license agreementsTa5d6ff"Ta5d6ff, no data theft and no surveillance. You own the system.

Ta5d6ffThis also means that Sideband operates differently than what you might be used to. It does not need a connection to a server on the Internet to function, and you do not have an account anywhere.Ta5d6ff"""
Te6edf3guide_text3 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Operating Principles[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]When Sideband is started on your device for the first time, it randomly generates a set of cryptographic keys. These keys are then used to create an LXMF address for your use. Any other endpoint in [i]any[/i] Reticulum network will be able to send data to this address, as long as there is [i]some sort of physical connection[/i] between your device and the remote endpoint. You can also move around to other Reticulum networks with this address, even ones that were never connected to the network the address was created on, or that didnTa5d6ff'Ta5d6fft exist when the address was created. The address is yours to keep and control for as long (or short) a time you need it, and you can always delete it and create a new one.Ta5d6ff"""
Te6edf3guide_text4 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Becoming Reachable[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]To establish reachability for any Reticulum address on a network, an [i]announce[/i] must be sent. Sideband does not do this automatically by default, but can be configured to do so every time the program starts. To send an announce manually, press the [i]Announce[/i] button in the [i]Conversations[/i] section of the program. When you send an announce, you make your LXMF address reachable for real-time messaging to the entire network you are connected to. Even in very large networks, you can expect global reachability for your address to be established in under a minute.

Ta5d6ffIf you donTa5d6ff'Ta5d6fft move to other places in the network, and keep connected through the same hubs or gateways, it is generally not necessary to send an announce more often than once every week. If you change your entry point to the network, you may want to send an announce, or you may just want to stay quiet.Ta5d6ff"""

Te6edf3guide_text5 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Relax & Disconnect[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]If you are not connected to the network, it is still possible for other people to message you, as long as one or more [i]Propagation Nodes[/i] exist on the network. These nodes pick up and hold encrypted in-transit messages for offline users. Messages are always encrypted before leaving the originators device, and nobody else than the intended recipient can decrypt messages in transit.

Ta5d6ffThe Propagation Nodes also distribute copies of messages between each other, such that even the failure of almost every node in the network will still allow users to sync their waiting messages. If all Propagation Nodes disappear or are destroyed, users can still communicate directly. Reticulum and LXMF will degrade gracefully all the way down to single users communicating directly via long-range data radios. Anyone can start up new propagation nodes and integrate them into existing networks without permission or coordination. Even a small and cheap device like a Rasperry Pi can handle messages for millions of users. LXMF networks are designed to be quite resilient, as long as there are people using them.Ta5d6ff"""

Te6edf3guide_text6 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Packets Find A Way[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]Connections in Reticulum networks can be wired or wireless, span many intermediary hops, run over fast links or ultra-low bandwidth radio, tunnel over the Invisible Internet (I2P), private networks, satellite connections, serial lines or anything else that Reticulum can carry data over. In most cases it will not be possible to know what path data takes in a Reticulum network, and no transmitted packets carries any identifying characteristics, apart from a destination address. There is no source addresses in Reticulum. As long as you do not reveal any connecting details between your person and your LXMF address, you can remain anonymous. Sending messages to others does not reveal [i]your[/i] address to anyone else than the intended recipient.Ta5d6ff"""

Te6edf3guide_text7 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Be Yourself, Be Unknown, Stay Free[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]Even with the above characteristics in mind, you [b]must remember[/b] that LXMF and Reticulum is not a technology that can guarantee anonymising connections that are already de-anonymised! If you use Sideband to connect to TCP Reticulum hubs over the clear Internet, from a network that can be tied to your personal identity, an adversary may learn that you are generating LXMF traffic. If you want to avoid this, it is recommended to use I2P to connect to Reticulum hubs on the Internet. Or only connecting from within pure Reticulum networks, that take one or more hops to reach connections that span the Internet. This is a complex topic, with many more nuances than can be covered here. You are encouraged to ask on the various Reticulum discussion forums if you are in doubt.

Ta5d6ffIf you use Reticulum and LXMF on hardware that does not carry any identifiers tied to you, it is possible to establish a completely free and anonymous communication system with Reticulum and LXMF clients.Ta5d6ff"""
Te6edf3guide_text8 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Keyboard Shortcuts[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size] - Ctrl+Q or Ctrl-W Shut down Sideband
Ta5d6ff - Ctrl-D or Ctrl-S Send message
Ta5d6ff - Ctrl-R Show Conversations
Ta5d6ff - Ctrl-L Show Announce Stream
Ta5d6ff - Ctrl-M Show Situation Map
Ta5d6ff - Ctrl-T Show Telemetry Setup
Ta5d6ff - Ctrl-N New conversation
Ta5d6ff - Ctrl-G Show guideTa5d6ff"""

Te6edf3guide_text9 Tff7b72= Ta5d6ff"""
Ta5d6ff[size=18dp][b]Sow Seeds Of Freedom[/b][/size][size=5dp]Tffea00\nTa5d6ff Tffea00\nTa5d6ff[/size]It took me more than seven years to design and built the entire ecosystem of software and hardware that makes this possible. If this project is valuable to you, please go to [u][ref=link]https://unsigned.io/donate[/ref][/u] to support the project with a donation. Every donation directly makes the entire Reticulum project possible.

Ta5d6ffThank you very much for using Free Communications Systems.
Ta5d6ff"""
Te6edf3info1 Tff7b72= Te6edf3guide_text1
Te6edf3info2 Tff7b72= Te6edf3guide_text2
Te6edf3info3 Tff7b72= Te6edf3guide_text3
Te6edf3info4 Tff7b72= Te6edf3guide_text4
Te6edf3info5 Tff7b72= Te6edf3guide_text5
Te6edf3info6 Tff7b72= Te6edf3guide_text6
Te6edf3info7 Tff7b72= Te6edf3guide_text7
Te6edf3info8 Tff7b72= Te6edf3guide_text8
Te6edf3info9 Tff7b72= Te6edf3guide_text9

Tff7b72if Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_style Tff7b72== Ta5d6ff"Ta5d6ffDarkTa5d6ff"Tb4b4b4:
Te6edf3info1 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info1Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info2 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info2Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info3 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info3Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info4 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info4Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info5 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info5Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info6 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info6Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info7 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info7Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info8 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info8Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Te6edf3info9 Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3info9Tff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info1Tff7b72.Td2a8fftext Tff7b72= Te6edf3info1
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info2Tff7b72.Td2a8fftext Tff7b72= Te6edf3info2
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info3Tff7b72.Td2a8fftext Tff7b72= Te6edf3info3
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info4Tff7b72.Td2a8fftext Tff7b72= Te6edf3info4
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info5Tff7b72.Td2a8fftext Tff7b72= Te6edf3info5
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info6Tff7b72.Td2a8fftext Tff7b72= Te6edf3info6
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info7Tff7b72.Td2a8fftext Tff7b72= Te6edf3info7
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info8Tff7b72.Td2a8fftext Tff7b72= Te6edf3info8
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info9Tff7b72.Td2a8fftext Tff7b72= Te6edf3info9
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_info9Tff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_ref_pressTff7b72=Te6edf3link_execTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffguide_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffguide_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect


T8b949e#################################################
T8b949e# Unimplemented Screens #
T8b949e#################################################
Tff7b72def Td2a8ffbroadcasts_actionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffbroadcasts_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbroadcasts_openTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloader_actionTb4b4b4(Te6edf3directionTff7b72=Te6edf3directionTb4b4b4)
Tff7b72def Td2a8fffinalTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbroadcasts_initTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffoTb4b4b4(Te6edf3dtTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbroadcasts_openTb4b4b4(Te6edf3no_transitionTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3oTb4b4b4, Te6edf3ll_otTb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3finalTb4b4b4, Te6edf3ll_ftTb4b4b4)

Tff7b72def Td2a8ffbroadcasts_openTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3directionTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3no_transitionTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffno_transition
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransitionTff7b72.Td2a8ffdirection Tff7b72= Te6edf3direction

Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ffThe [b]Local Broadcasts[/b] feature will allow you to send and listen for local broadcast transmissions on connected radio, LoRa and WiFi interfaces.Tffea00\nTffea00\nTa5d6ff[b]Local Broadcasts[/b] makes it easy to establish public information exchange with anyone in direct radio range, or even with large areas far away using the [i]Remote Broadcast Repeater[/i] feature.Tffea00\nTffea00\nTa5d6ffThese features are not yet implemented in Sideband.Tffea00\nTffea00\nTa5d6ffWant it faster? Go to [u][ref=link]https://unsigned.io/donate[/ref][/u] to support the project.Ta5d6ff"
Tff7b72if Tff7b72selfTff7b72.Td2a8fftheme_clsTff7b72.Td2a8fftheme_style Tff7b72== Ta5d6ff"Ta5d6ffDarkTa5d6ff"Tb4b4b4:
Te6edf3info Tff7b72= Ta5d6ff"Ta5d6ff[color=#Ta5d6ff"Tff7b72+Te6edf3dark_theme_text_colorTff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"Tff7b72+Te6edf3infoTff7b72+Ta5d6ff"Ta5d6ff[/color]Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffbroadcasts_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffbroadcasts_infoTff7b72.Td2a8fftext Tff7b72= Te6edf3info

Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrent Tff7b72= Ta5d6ff"Ta5d6ffbroadcasts_screenTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffnav_drawerTff7b72.Td2a8ffset_stateTb4b4b4(Ta5d6ff"Ta5d6ffclosedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffapp.displayingTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffcurrentTb4b4b4)

Tff7b72if Te6edf3no_transitionTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8fftransition Tff7b72= Tff7b72selfTff7b72.Td2a8ffslide_transition

Tff7b72def Td2a8ffbroadcasts_initTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffhas_screenTb4b4b4(Ta5d6ff"Ta5d6ffbroadcasts_screenTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72def Td2a8fflink_execTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3eventTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffljTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3webbrowserTff7b72.Td2a8ffopenTb4b4b4(Ta5d6ff"Ta5d6ffhttps://unsigned.io/donateTa5d6ff"Tb4b4b4)
Te6edf3threadingTff7b72.Td2a8ffThreadTb4b4b4(Te6edf3targetTff7b72=Te6edf3ljTb4b4b4, Te6edf3daemonTff7b72=Tff7b72TrueTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffbroadcasts_screen Tff7b72= Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3layout_broadcasts_screenTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffbroadcasts_screenTff7b72.Td2a8ffapp Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffrootTff7b72.Td2a8ffidsTff7b72.Td2a8ffscreen_managerTff7b72.Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffbroadcasts_screenTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffbroadcasts_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffbroadcasts_scrollviewTff7b72.Td2a8ffeffect_cls Tff7b72= Te6edf3ScrollEffect
Tff7b72selfTff7b72.Td2a8ffbroadcasts_screenTff7b72.Td2a8ffidsTff7b72.Td2a8ffbroadcasts_infoTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_ref_pressTff7b72=Te6edf3link_execTb4b4b4)

Tff7b72class T56d364CustomOneLineIconListItemTb4b4b4(Te6edf3OneLineIconListItemTb4b4b4)Tb4b4b4:
Te6edf3icon Tff7b72= Te6edf3StringPropertyTb4b4b4(Tb4b4b4)

Tff7b72class T56d364MDMapIconButtonTb4b4b4(Te6edf3MDIconButtonTb4b4b4)Tb4b4b4:
Tff7b72pass

Tff7b72if Tff7b72not Te6edf3argsTff7b72.Td2a8ffdaemonTb4b4b4:
Tff7b72from T7ee787kivyT7ee787.T7ee787base Tff7b72import Te6edf3ExceptionManagerTb4b4b4, Te6edf3ExceptionHandler
Tff7b72class T56d364SidebandExceptionHandlerTb4b4b4(Te6edf3ExceptionHandlerTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffhandle_exceptionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4:
Te6edf3etype Tff7b72= Tffa657typeTb4b4b4(Te6edf3eTb4b4b4)
Tff7b72if Te6edf3etype Tff7b72!= Tf85149SystemExitTb4b4b4:
Tff7b72import T7ee787traceback
Te6edf3exception_info Tff7b72= Ta5d6ff"Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3tracebackTff7b72.Td2a8ffTracebackExceptionTff7b72.Td2a8fffrom_exceptionTb4b4b4(Te6edf3eTb4b4b4)Tff7b72.Td2a8ffformatTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffAn unhandled Tffd700{Tffa657strTb4b4b4(Tffa657typeTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4)Tffd700}Ta5d6ff exception occurred: Tffd700{Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Te6edf3exception_infoTb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72return Te6edf3ExceptionManagerTff7b72.Td2a8ffPASS
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3ExceptionManagerTff7b72.Td2a8ffRAISE

Tff7b72def Td2a8ffrunTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3argsTff7b72.Td2a8ffdaemonTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffStarting Sideband in daemon modeTa5d6ff"Tb4b4b4)
Te6edf3sideband Tff7b72= Te6edf3SidebandCoreTb4b4b4(Tff7b72NoneTb4b4b4, Te6edf3is_clientTff7b72=Tff7b72FalseTb4b4b4, Te6edf3verboseTff7b72=Tb4b4b4(Te6edf3argsTff7b72.Td2a8ffverbose Tff7b72or Te6edf3__debug_build__Tb4b4b4)Tb4b4b4)
Te6edf3sidebandTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Tff7b72while Tff7b72TrueTb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff5Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3ExceptionManagerTff7b72.Td2a8ffadd_handlerTb4b4b4(Te6edf3SidebandExceptionHandlerTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3SidebandAppTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3runTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────